Heim > Artikel > Backend-Entwicklung > Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert
Dieser Artikel führt Sie in die Problematik der Integration von PHP-E-Mails ein. PHP ist heute eine der beliebtesten Programmiersprachen für die Webentwicklung. Unternehmen senden E-Mails an Benutzer, um sie über neue Produkte zu informieren oder mit Mitarbeitern zu kommunizieren. Im Folgenden gebe ich Ihnen eine detaillierte Einführung in die Integration der beliebten Mailtrap-Plattform in PHP, um mehrere E-Mails zu versenden. Ich hoffe, dass sie Freunden in Not hilfreich sein wird. Die Verwendung von Mailtrap zur Integration von PHP-E-Mails ist die Lösung Die beliebteste Webentwicklung heute. Eine der Programmiersprachen. Unternehmen versenden E-Mails an Benutzer, um sie über neue Produkte zu informieren, beispielsweise Werbe-E-Mails, oder um mit Mitarbeitern zu kommunizieren.
In diesem Tutorial schauen wir uns an, wie wir die beliebte Mailtrap-Plattform in unser PHP integrieren, um mehrere E-Mails zu versenden. [Empfohlenes Lernen: PHP-Video-Tutorial
]VoraussetzungenUm diesem Tutorial folgen zu können, müssen Sie die folgenden Bedingungen erfüllen. Grundlegende Konzepte von PHP, vorzugsweise PHP8.0. Grundlegende Konzepte des Simple Mail Transfer Protocol (SMTP).// 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 = "" ): boolDie obige Methode empfängt mehrere Parameter, die unten beschrieben werden.
<?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);Im obigen Code senden wir eine Anfrage-E-Mail an eine zufällige E-Mail. Wir haben den HTML-Body definiert und zusätzliche Parameter wie den Titel hinzugefügt. HINWEIS: Es ist wichtig zu bedenken, dass wir zum Senden einer E-Mail an einen Benutzer mit einem HTML-Text unseren Header wie im Bild unten festlegen müssen.
$headers[] = 'MIME-Version: 1.0'; $headers[] = 'Content-type: text/html; charset=iso-8859-1';Andernfalls wird unser E-Mail-Text als HTML zugestellt. Weitere Probleme können auftreten, wenn unser Transportprotokoll auf falsche Inhalte stößt. An dieser Stelle gehen wir davon aus, dass wir bei der Ausführung dieses bestimmten Codes davon ausgehen, dass er fehlerfrei ausgeführt wird. Aber wie können wir sicherstellen, dass unsere E-Mails an die vorgesehenen Empfänger zugestellt werden? Im nächsten Abschnitt verwenden wir ein Mailpaket, um dieselbe E-Mail zu versenden. Diese Pakete werden uns helfen, die Einschränkungen der mail()-Methode zu überwinden, die es ziemlich schwierig macht, zu überprüfen, ob unsere E-Mails zugestellt wurden. PHP-Mailing-PaketEiner der Hauptnachteile der bisherigen E-Mail-Versandmethode besteht darin, dass sie über sehr eingeschränkte Features oder Funktionen verfügt. Dieses Problem tritt normalerweise dann auf, wenn Sie große Mengen an E-Mails versenden müssen. In diesem Abschnitt schauen wir uns an, wie wir diese Mängel beheben können und analysieren anschließend, ob unsere E-Mails die beabsichtigten Empfänger erreichen. Wir werden die folgenden Pakete besprechen. PHPMailer Swift Mailer
让我们继续,先从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
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!