Maison > Article > développement back-end > Parlons de la façon dont Mailtrap intègre les e-mails PHP
Cet article vous présente la problématique de l'intégration des emails PHP. PHP est aujourd'hui l'un des langages de programmation de développement web les plus populaires. Les entreprises envoient des emails aux utilisateurs pour les informer de nouveaux produits, comme des emails promotionnels ou pour communiquer avec les employés. Ci-dessous, je vais vous donner une introduction détaillée sur la façon d'intégrer la populaire plateforme Mailtrap en PHP pour envoyer plusieurs e-mails. J'espère que cela sera utile aux amis dans le besoin ~
PHP est le meilleur. développement Web le plus populaire aujourd'hui. L'un des langages de programmation. Les entreprises envoient des e-mails aux utilisateurs pour les informer de nouveaux produits, comme des e-mails promotionnels ou pour communiquer avec les employés.
Dans ce tutoriel, nous voyons comment intégrer la populaire plateforme Mailtrap dans notre PHP pour envoyer plusieurs e-mails. [Apprentissage recommandé : Tutoriel vidéo PHP]
Pour suivre ce tutoriel, vous devez remplir les conditions suivantes.
Concepts de base de PHP, de préférence PHP8.0.
Concepts de base du Simple Mail Transfer Protocol (SMTP).
Un compte mailtrap.
À la fin de ce tutoriel, vous devriez être capable d'intégrer Mailtrap dans votre application PHP pour tester les emails.
Développer une large gamme d'applications comporte de nombreuses exigences. Cela inclut la nécessité de tester votre application pour garantir que tout fonctionne comme prévu. L'une des exigences clés de ces applications, telles qu'Edge en tant que service, est la possibilité de tester la fonctionnalité de messagerie. Les clients de
Co profitent souvent d’Edge en tant que service et disposent d’un plan de paiement flexible. Pour rappeler à ces clients leur prochaine date d'échéance, nous devons leur envoyer un email.
L'un des principaux défis liés à l'envoi d'e-mails est que nous ne sommes pas sûrs que nos e-mails soient livrés. Pour garantir que les e-mails sont livrés, nous devons tester nos e-mails au niveau du développement et de la mise en scène pour nous assurer qu'ils fonctionnent bien en production.
Maintenant, Mailtrap accompagne les phases de développement et de mise en scène du processus de développement d'applications. Il est utilisé pour tester les e-mails afin de garantir qu'ils sont livrés à leurs destinataires prévus. Dans la section suivante, nous examinerons de plus près les méthodes d’envoi d’e-mails de PHP, leur fonctionnement et les problèmes auxquels elles peuvent être confrontées.
En PHP, nous avons 2 méthodes différentes pour envoyer des e-mails aux utilisateurs de notre système.
Ces méthodes le sont.
En utilisant des packages PHP, nous le verrons dans la section suivante.
Utilisez les méthodes intégrées.
Dans cette section, nous utiliserons la méthode mail() de PHP pour envoyer des e-mails à nos utilisateurs. Nous procéderons ensuite à vérifier si ces e-mails ont été livrés ou ont échoué. La structure générale de
mail() est la suivante.
// the mail method in PHP for sending emails mail( // recipient email string $to, // the email subject string $subject, // the email body string $message, //any other additional settings array|string $additional_headers = [], string $additional_params = "" ): bool
La méthode ci-dessus reçoit plusieurs paramètres, qui sont décrits ci-dessous.
$to : Ce paramètre fait référence au destinataire de l'email. Cela peut ressembler à ceci : . test@section.io
$subject : Ceci fait référence au sujet de l'e-mail, vous devez vous assurer qu'il est conforme à la RFC 2047 - MIME (MultiPurpose Internet Mail Extensions).
$message : Ceci est le corps de votre e-mail. Nous devons nous assurer que chaque ligne est séparée par CRLF(rn). Le nombre de lignes ne doit pas dépasser 70 caractères, sinon l’email ne sera pas envoyé.
$additional_headers (facultatif) - Il s'agit d'un paramètre de tableau qui garantit que nous pouvons ajouter des informations supplémentaires aux en-têtes des e-mails. Cela peut inclure CC, BCC, etc.
Maintenant que nous comprenons les fonctionnalités de base de la méthode mail() de PHP, passons à l'envoi d'un exemple d'e-mail à des e-mails aléatoires.
<?php // sending to $to = 'no-reply@section.io'; // email subject $subject = "Section's Edge as a service"; // additional headers $headers = array( 'From' => 'test@example.com', 'Reply-To' => 'test2@example.com', 'X-Mailer' => 'PHP/' . phpversion() ); //body template $message = ' <html> <head> <title>Node.js Deployment</title> </head> <body> <p>I have a few requests:</p> <ol> <li>How much is the cost?</li> <li>What is the whole procedure of delpoyment</li> <li>How are my appplications distributed?</li> <li>How flexible is the payment plans?</li> </ol> </body> </html> '; mail($to, $subject, $message, $headers);
Dans le code ci-dessus, nous envoyons un e-mail de requête à un e-mail aléatoire. Nous avons défini le corps HTML et ajouté des paramètres supplémentaires tels que le titre.
REMARQUE : Il est important de se rappeler que pour envoyer un e-mail à un utilisateur en utilisant un corps HTML, nous devons définir notre en-tête comme indiqué dans l'image ci-dessous.
$headers[] = 'MIME-Version: 1.0'; $headers[] = 'Content-type: text/html; charset=iso-8859-1';
Sinon, le corps de notre e-mail sera livré au format HTML. D'autres problèmes peuvent survenir lorsque notre protocole de transport rencontre un contenu incorrect. À ce stade, nous supposons que lorsque ce code particulier est exécuté, nous nous attendons à ce qu’il s’exécute parfaitement.
Cependant, comment pouvons-nous garantir que nos e-mails sont livrés aux destinataires prévus ? Dans la section suivante, utilisons un package de messagerie pour envoyer le même e-mail. Ces packages nous aideront à surmonter les limitations de la méthode mail(), qui rend assez difficile la vérification si notre courrier a été livré.
L'un des principaux inconvénients de la méthode d'envoi d'e-mails précédente est qu'elle a des fonctionnalités très limitées. Il s'agit généralement d'un problème rencontré lorsque vous devez envoyer de grandes quantités de courrier.
Dans cette section, nous verrons comment surmonter ces lacunes et analyserons ensuite si nos e-mails parviennent à leurs destinataires prévus.
Nous discuterons des forfaits suivants.
PHPMailer
Swift Mailer
Pear Mail
让我们继续,先从PHPMailer :PHPMailer是我们上面列出的所有包中最流行的用PHP发送邮件的包之一。
创建一个PHP文件mail.php ,并添加以下代码片段。
<?php // Import the mailer class use PHPMailer\PHPMailer\PHPMailer; require_once './vendor/autoload.php'; // create a new mailing object $mail = new PHPMailer(); // SMTP configuration $phpmailer = new PHPMailer(); $phpmailer->isSMTP(); $phpmailer->Host = 'smtp.mailtrap.io'; $phpmailer->SMTPAuth = true; $phpmailer->Port = 2525; $phpmailer->Username = 'cb7xx33e1856xxx5b25xx'; $phpmailer->Password = '87f63xx87d73e52xxx4xx'; $mail->setFrom('no-reply@section.io', 'Node.js Deployment'); $mail->addAddress('test@gmail.com', 'Me'); $mail->Subject = 'Thanks for using section.io Edge as a service!'; // Our HTML setup $mail->isHTML(TRUE); $mail->Body = '<html>Hello johndoe, thank you for using our Node.js deployment and distribution platform. Kinldy check the document in the attachment below to review your payments plan.</html>'; $mail->AltBody = 'Success'; // adding mailing attachment for payment plan $mail->addAttachment('//node/paymments.pdf', 'payments.pdf'); // send the thank you messange if(!$mail->send()){ echo 'Your message could not be develired, try again later'; echo 'Error: ' . $mail->ErrorInfo; } else { echo 'Your message has been sent successfully.'; }
在上面的代码中,我们已经安装了PHPMailer包。我们还创建了这个类的一个新实例,$mail 。接下来,我们已经创建了我们的Mailtrap账户,并在这里抓取了凭证。
当你创建一个项目时,确保你将其与PHPMailer 选项集成,如下面的截图所示。
你会注意到,我们的截图省略了用户名和密码。这些是自动生成的,对每个用户都是不同的。
接下来,我们设置了我们的setFrom() 方法来接收发件人的电子邮件和电子邮件标题。然后,我们继续配置收件人的电子邮件地址和电子邮件的主题。
注意:之前,我们曾表示,我们可以将正文添加为HTML,然后适当地设置我们的内容类型。
在上面的邮件正文中,我们将信息定义为HTML,以便我们能够定制邮件,满足我们的要求。然后我们添加替代标签,再最后添加一个附件。然后,我们使用PHPMailer的$mail->send() 方法来发送我们的邮件。我们加入了if 语句来检查我们的邮件是否已经发送。
当我们的邮件未能送达时,我们通过打印一个警告信息来通知用户,否则就打印一个成功信息。让我们继续使用SwiftMailer ,实现同样的功能,如下所示。
在你的服务器上创建一个新的文件swift.php ,并添加以下代码片段。
<?php require_once './vendor/autoload.php'; try { // start by creating SMTP transport $transport = (new Swift_SmtpTransport('smtp.mailtrap.io', 2525)) ->setUsername('xxxxxxxxx') ->setPassword('xxxxxxxxx'); $swift_mailer = new Swift_Mailer($transport); // message creation $swift_message = new Swift_Message(); $swift_message->setSubject('Hooray! You just deployed your first Node'); swift_message->setFrom(['no-reply@section.io' => 'Saas']); $messswift_messageage->addTo('test@gmail.com','Test'); // Adding email attachment $email_attachment = Swift_Attachment::fromPath('./section/payments.pdf'); $swift_message->attach($email_attachment); // Set the plain-text part $swift_message->setBody('Hello John Doe, thank you for using the Section Node deployment service'); // Set the HTML part $swift_message->addPart('We are glad to welcome you on board'); // Send the message $res = swift_mailer->send($message); } catch (Exception $e) { echo $e->getMessage(); }
就像PHPMailer一样,我们首先安装这个包,并使用./vendor/autoload.php 路径导入它。还需要注意的是,根据你的系统设置,这个路径可能与你的应用程序路径不同。
接下来,我们将传输设置为使用我们Mailtrap的Swift_SmtpTransport 。拿起你的凭证,按照上面的代码设置。按照前面的步骤来配置你的应用程序,使其使用Mailtrap包来发送邮件。
现在,我们如何知道我们的邮件已经被送达?这就是我们使用Mailrap的原因。与PHPmail() 方法相比,该软件包允许我们配置我们的应用程序使用mailtrap,这给我们提供了一个平台来测试我们的应用程序,正如下一节所讨论的。
登录你的Mailtrap账户,进入你的收件箱部分,如以下截图所示。
接下来,点击项目名称,展开你所发送的邮件。
注意:为了安全起见,上述截图上的一些功能已被跳过。
在这篇文章中,我们已经广泛地讨论了PHP邮件方法的基本概念。我们已经看到了PHP内置的方法mail() 是如何限制我们发送带有测试功能的邮件的,我们已经用PHP包克服了这个问题。
作者:DebugUsery
链接:https://juejin.cn/post/7167615841398161416
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!