站長資訊網
最全最豐富的資訊網站

聊聊Mailtrap怎么整合PHP郵件

本文給大家介紹有關整合PHP郵件的問題,PHP是當今最流行的網絡開發編程語言之一,公司向用戶發送郵件,通知他們新產品,如促銷郵件或與員工溝通。下面就給大家詳細介紹怎么在PHP中集成流行的Mailtrap平臺來發送多封郵件,希望對需要的朋友有所幫助~

聊聊Mailtrap怎么整合PHP郵件

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

使用Mailtrap整合PHP郵件

PHP是當今最流行的網絡開發編程語言之一。公司向用戶發送郵件,通知他們新產品,如促銷郵件或與員工溝通。

在本教程中,我們看看如何在我們的PHP中集成流行的Mailtrap平臺來發送多封郵件。【推薦學習:PHP視頻教程】

前提條件

要跟隨本教程,你需要具備以下條件。

  • PHP的基本概念,最好是PHP8.0。

  • 簡單郵件傳輸協議(SMTP)的基本概念。

  • 一個mailtrap賬戶。

目標

在本教程結束時,你應該能夠將Mailtrap集成到你的PHP應用程序中,以測試電子郵件。

開始使用mailtrap

開發廣泛的應用程序有很多要求。這包括要求測試你的應用程序,以確保一切按計劃進行。這些應用的關鍵要求之一,如Edge as a service,是測試郵件功能的能力。

科的客戶經常利用Edge作為服務的好處,他們有一個靈活的付款計劃。為了提醒這些客戶的下一個到期日,我們需要向他們發送電子郵件。

發送電子郵件的一個關鍵挑戰是,我們不確定我們的電子郵件是否被交付。為了確保電子郵件被送達,我們需要在開發和階段性水平上測試我們的電子郵件,以確保它們在生產中運行良好。

現在,Mailtrap隨著應用程序開發過程的開發和暫存階段的到來而出現。它被用來測試電子郵件,以確保它們被送到預定的收件人手中。在下一節中,我們將深入了解PHP的郵件發送方法,它們是如何工作的,以及它們可能面臨的問題。

PHP內置的郵件發送方法

在PHP中,我們有2種不同的方法來給我們的系統用戶發送郵件。

這些方法是。

  • 通過使用PHP包,我們將在下一節看到。

  • 使用內置的方法。

在這一節中,我們將使用PHP的mail() 方法來給我們的用戶發送郵件。然后,我們將繼續檢查這些郵件是否被送達或失敗。

mail() 的一般結構如下所示。

// 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
登錄后復制

上述方法接收了多個參數,描述如下。

$to :這個參數指的是電子郵件的收件人。這可以是這樣的: 。test@section.io

$subject:這指的是電子郵件的主題,你必須確保它符合RFC 2047 – MIME(多用途互聯網郵件擴展)。

$message:這是你的郵件正文。我們需要確保每一行都用CRLF(rn)分隔。行數不應大于70個字符,否則郵件將不會被發送。

$additional_headers (optional)- 這是一個數組參數,確保我們可以在郵件標題中添加額外的信息。這可能包括CC ,BCC 等。

現在我們了解了PHP的mail() 方法的基本功能,讓我們繼續向一些隨機的電子郵件發送一封樣本郵件。

<?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);
登錄后復制

在上面的代碼中,我們正在向一個隨機的電子郵件發送一封詢問郵件。我們已經定義了HTML主體,并添加了額外的參數,如標題。

注意:重要的是要記住,要使用HTML主體向用戶發送電子郵件,我們必須設置我們的標題,如下圖所示。

$headers[] = 'MIME-Version: 1.0'; $headers[] = 'Content-type: text/html; charset=iso-8859-1';
登錄后復制

否則,我們的郵件正文就會以HTML的形式傳遞。當我們的傳輸協議遇到錯誤的內容時,可能會出現其他問題。在這一點上,我們假設當這個特定的代碼被運行時,我們期望它能完美無缺地運行。

然而,我們怎樣才能確保我們的電子郵件被送到預定的收件人手中呢?在下一節中,讓我們用一個郵件包來發送同樣的電子郵件。這些包將幫助我們克服mail() 方法的局限性,這種方法在檢查我們的郵件是否被送達時相當困難。

PHP郵件包

前面的電子郵件發送方法的一個關鍵缺點是,它的特點或功能非常有限。這通常是在需要發送大量郵件時面臨的問題。

在本節中,我們將研究如何克服這些缺點,并隨后分析我們的電子郵件是否發展到了預期的收件人。

我們將討論以下軟件包。

  • PHPMailer

  • Swift Mailer

  • 梨子郵件

讓我們繼續,先從PHPMailer :PHPMailer是我們上面列出的所有包中最流行的用PHP發送郵件的包之一。

創建一個PHP文件mail.php ,并添加以下代碼片段。

<?php // Import the mailer class use PHPMailerPHPMailerPHPMailer; 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 選項集成,如下面的截圖所示。

聊聊Mailtrap怎么整合PHP郵件

你會注意到,我們的截圖省略了用戶名和密碼。這些是自動生成的,對每個用戶都是不同的。

接下來,我們設置了我們的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測試電子郵件

登錄你的Mailtrap賬戶,進入你的收件箱部分,如以下截圖所示。

聊聊Mailtrap怎么整合PHP郵件

接下來,點擊項目名稱,展開你所發送的郵件。

聊聊Mailtrap怎么整合PHP郵件

注意:為了安全起見,上述截圖上的一些功能已被跳過。

總結

在這篇文章中,我們已經廣泛地討論了PHP郵件方法的基本概念。我們已經看到了PHP內置的方法mail() 是如何限制我們發送帶有測試功能的郵件的,我們已經用PHP包克服了這個問題。

作者:DebugUsery

鏈接:https://juejin.cn/post/7167615841398161416

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日韩精品人成在线播放| 精品无人乱码一区二区三区 | 久久久久女人精品毛片九一| 精品免费久久久久国产一区| 日韩免费观看一级毛片看看| 国产精品一区二区久久乐下载| 国产精品1000夫妇激情啪发布| 麻豆AV无码精品一区二区| 久久精品免费一区二区| 91精品国产自产91精品| 99精品一区二区三区| 久久精品99国产精品日本| 国产精品禁18久久久夂久| 中文字幕九七精品乱码| 久久精品国产一区二区| 国产精品狼人久久久久影院 | 亚洲精品tv久久久久久久久| 中文精品久久久久国产网站| 国产精品婷婷午夜在线观看| 国产精品 视频一区 二区三区| 一区二区日韩国产精品| 青青热久久国产久精品| 日韩a级片在线观看| 精品大臿蕉视频在线观看| 精品天海翼一区二区| 一区二区三区精品高清视频免费在线播放| 日韩三级一区二区三区| 老司机午夜精品视频播放| 老司机午夜精品视频播放| 四虎亚洲国产成人久久精品| 精品人妻一区二区三区四区在线| 亚洲日韩一区二区三区| 日韩乱码人妻无码中文字幕| 日韩精品无码免费专区网站| 久久久无码精品亚洲日韩蜜臀浪潮| 日韩免费电影网站| 日韩福利视频一区| 日产国产精品亚洲系列| 午夜一级日韩精品制服诱惑我们这边| 步兵精品手机在线观看| 七次郎在线视频观看精品|