Heim  >  Artikel  >  Backend-Entwicklung  >  Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert

Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert

藏色散人
藏色散人nach vorne
2022-11-23 16:45:006378Durchsuche

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: Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriertPHP-Video-Tutorial

]

Voraussetzungen

Um 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).
  • Ein Mailtrap-Konto.
  • Ziel
  • Am Ende dieses Tutorials sollten Sie in der Lage sein, Mailtrap in Ihre PHP-Anwendung zum Testen von E-Mails zu integrieren.

    Beginnen Sie mit der Verwendung von Mailtrap
Die Entwicklung einer breiten Palette von Anwendungen stellt viele Anforderungen. Dazu gehören Anforderungen zum Testen Ihrer Anwendung, um sicherzustellen, dass alles wie geplant funktioniert. Eine der wichtigsten Anforderungen für diese Anwendungen, wie z. B. Edge as a Service, ist die Möglichkeit, die E-Mail-Funktionalität zu testen. Die Kunden von

Co nutzen Edge häufig als Service und verfügen über einen flexiblen Zahlungsplan. Um diese Kunden an den nächsten Fälligkeitstermin zu erinnern, müssen wir ihnen eine E-Mail senden.

Eine große Herausforderung beim Versenden von E-Mails besteht darin, dass wir nicht sicher sind, ob unsere E-Mails zugestellt werden. Um sicherzustellen, dass E-Mails zugestellt werden, müssen wir unsere E-Mails auf Entwicklungs- und Staging-Ebene testen, um sicherzustellen, dass sie in der Produktion gut funktionieren.

Jetzt begleitet Mailtrap die Entwicklungs- und Staging-Phasen des Anwendungsentwicklungsprozesses. Es wird verwendet, um E-Mails zu testen, um sicherzustellen, dass sie an die vorgesehenen Empfänger zugestellt werden. Im nächsten Abschnitt werfen wir einen genaueren Blick auf die E-Mail-Versandmethoden von PHP, ihre Funktionsweise und die möglichen Probleme.

In PHP integrierte E-Mail-Versandmethoden

In PHP haben wir zwei verschiedene Methoden, um E-Mails an unsere Systembenutzer zu senden.

Diese Methoden sind.

Durch die Verwendung von PHP-Paketen werden wir im nächsten Abschnitt sehen.

Verwenden Sie integrierte Methoden.
  • In diesem Abschnitt verwenden wir die mail()-Methode von PHP, um E-Mails an unsere Benutzer zu senden. Anschließend prüfen wir, ob diese E-Mails zugestellt wurden oder ob sie fehlgeschlagen sind. Die allgemeine Struktur von
  • mail() ist wie folgt.

    // 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

    Die obige Methode empfängt mehrere Parameter, die unten beschrieben werden.
$to: Dieser Parameter bezieht sich auf den Empfänger der E-Mail. Das kann so aussehen: . test@section.io

$subject: Dies bezieht sich auf den Betreff der E-Mail. Sie müssen sicherstellen, dass er RFC 2047 – MIME (Multipurpose Internet Mail Extensions) entspricht.

$message: Dies ist der Text Ihrer E-Mail. Wir müssen sicherstellen, dass jede Zeile durch CRLF(rn) getrennt ist. Die Zeilenanzahl sollte 70 Zeichen nicht überschreiten, sonst wird die E-Mail nicht versendet.

$additional_headers (optional) – Dies ist ein Array-Parameter, der sicherstellt, dass wir den E-Mail-Headern zusätzliche Informationen hinzufügen können. Dies kann CC, BCC usw. umfassen.

Da wir nun die grundlegende Funktionalität der mail()-Methode von PHP verstanden haben, fahren wir mit dem Senden einer Beispiel-E-Mail an einige zufällige E-Mails fort.

<?php
// sending to
$to      = &#39;no-reply@section.io&#39;;
// email subject
$subject = "Section&#39;s Edge as a service";
// additional headers
$headers = array(
    &#39;From&#39; => &#39;test@example.com&#39;,
    &#39;Reply-To&#39; => &#39;test2@example.com&#39;,
    &#39;X-Mailer&#39; => &#39;PHP/&#39; . phpversion()
);
//body template

$message = &#39;
<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>
&#39;;

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[] = &#39;MIME-Version: 1.0&#39;;
$headers[] = &#39;Content-type: text/html; charset=iso-8859-1&#39;;

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-Paket

Einer 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
  • Pear Mail

让我们继续,先从PHPMailer :PHPMailer是我们上面列出的所有包中最流行的用PHP发送邮件的包之一。

创建一个PHP文件mail.php ,并添加以下代码片段。

<?php
// Import the mailer class
use PHPMailer\PHPMailer\PHPMailer;
require_once &#39;./vendor/autoload.php&#39;;
// create a new mailing object
$mail = new PHPMailer();
// SMTP configuration

$phpmailer = new PHPMailer();
$phpmailer->isSMTP();
$phpmailer->Host = &#39;smtp.mailtrap.io&#39;;
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 2525;
$phpmailer->Username = &#39;cb7xx33e1856xxx5b25xx&#39;;
$phpmailer->Password = &#39;87f63xx87d73e52xxx4xx&#39;;

$mail->setFrom(&#39;no-reply@section.io&#39;, &#39;Node.js Deployment&#39;);
$mail->addAddress(&#39;test@gmail.com&#39;, &#39;Me&#39;);
$mail->Subject = &#39;Thanks for using section.io Edge as a service!&#39;;

// Our HTML setup

$mail->isHTML(TRUE);
$mail->Body = &#39;<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>&#39;;
$mail->AltBody = &#39;Success&#39;;
// adding mailing attachment for payment plan
$mail->addAttachment(&#39;//node/paymments.pdf&#39;, &#39;payments.pdf&#39;);
// send the thank you messange
if(!$mail->send()){
    echo &#39;Your message could not be develired, try again later&#39;;
    echo &#39;Error: &#39; . $mail->ErrorInfo;
} else {
    echo &#39;Your message has been sent successfully.&#39;;
}

在上面的代码中,我们已经安装了PHPMailer包。我们还创建了这个类的一个新实例,$mail 。接下来,我们已经创建了我们的Mailtrap账户,并在这里抓取了凭证。

当你创建一个项目时,确保你将其与PHPMailer 选项集成,如下面的截图所示。

Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert

你会注意到,我们的截图省略了用户名和密码。这些是自动生成的,对每个用户都是不同的。

接下来,我们设置了我们的setFrom() 方法来接收发件人的电子邮件和电子邮件标题。然后,我们继续配置收件人的电子邮件地址和电子邮件的主题。

注意:之前,我们曾表示,我们可以将正文添加为HTML,然后适当地设置我们的内容类型。

在上面的邮件正文中,我们将信息定义为HTML,以便我们能够定制邮件,满足我们的要求。然后我们添加替代标签,再最后添加一个附件。然后,我们使用PHPMailer的$mail->send() 方法来发送我们的邮件。我们加入了if 语句来检查我们的邮件是否已经发送。

当我们的邮件未能送达时,我们通过打印一个警告信息来通知用户,否则就打印一个成功信息。让我们继续使用SwiftMailer ,实现同样的功能,如下所示。

在你的服务器上创建一个新的文件swift.php ,并添加以下代码片段。

<?php
require_once &#39;./vendor/autoload.php&#39;;
 try {
    // start by creating SMTP transport
    $transport = (new Swift_SmtpTransport(&#39;smtp.mailtrap.io&#39;, 2525))
        ->setUsername(&#39;xxxxxxxxx&#39;)
        ->setPassword(&#39;xxxxxxxxx&#39;);

    $swift_mailer = new Swift_Mailer($transport);

    // message creation
    $swift_message = new Swift_Message();

    $swift_message->setSubject(&#39;Hooray! You just deployed your first Node&#39;);

    swift_message->setFrom([&#39;no-reply@section.io&#39; => &#39;Saas&#39;]);
    $messswift_messageage->addTo(&#39;test@gmail.com&#39;,&#39;Test&#39;);

    // Adding email attachment
   $email_attachment = Swift_Attachment::fromPath(&#39;./section/payments.pdf&#39;);

    $swift_message->attach($email_attachment);

    // Set the plain-text part
    $swift_message->setBody(&#39;Hello John Doe, thank you for using the Section Node deployment service&#39;);
     // Set the HTML part
    $swift_message->addPart(&#39;We are glad to welcome you on board&#39;);
     // 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测试电子邮件

登录你的Mailtrap账户,进入你的收件箱部分,如以下截图所示。

Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert

接下来,点击项目名称,展开你所发送的邮件。

Lassen Sie uns darüber sprechen, wie Mailtrap PHP-E-Mails integriert

注意:为了安全起见,上述截图上的一些功能已被跳过。

总结

在这篇文章中,我们已经广泛地讨论了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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.im. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen