欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          聊聊Mailtrap怎么整合PHP郵件

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

          聊聊Mailtrap怎么整合PHP郵件

          php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
          Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

          使用Mailtrap整合PHP郵件

          PHP是當(dāng)今最流行的網(wǎng)絡(luò)開發(fā)編程語言之一。公司向用戶發(fā)送郵件,通知他們新產(chǎn)品,如促銷郵件或與員工溝通。

          在本教程中,我們看看如何在我們的PHP中集成流行的Mailtrap平臺來發(fā)送多封郵件?!就扑]學(xué)習(xí):PHP視頻教程】

          前提條件

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

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

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

          • 一個(gè)mailtrap賬戶。

          目標(biāo)

          在本教程結(jié)束時(shí),你應(yīng)該能夠?qū)ailtrap集成到你的PHP應(yīng)用程序中,以測試電子郵件。

          開始使用mailtrap

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

          科的客戶經(jīng)常利用Edge作為服務(wù)的好處,他們有一個(gè)靈活的付款計(jì)劃。為了提醒這些客戶的下一個(gè)到期日,我們需要向他們發(fā)送電子郵件。

          發(fā)送電子郵件的一個(gè)關(guān)鍵挑戰(zhàn)是,我們不確定我們的電子郵件是否被交付。為了確保電子郵件被送達(dá),我們需要在開發(fā)和階段性水平上測試我們的電子郵件,以確保它們在生產(chǎn)中運(yùn)行良好。

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

          PHP內(nèi)置的郵件發(fā)送方法

          在PHP中,我們有2種不同的方法來給我們的系統(tǒng)用戶發(fā)送郵件。

          這些方法是。

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

          • 使用內(nèi)置的方法。

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

          mail() 的一般結(jié)構(gòu)如下所示。

          // 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
          登錄后復(fù)制

          上述方法接收了多個(gè)參數(shù),描述如下。

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

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

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

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

          現(xiàn)在我們了解了PHP的mail() 方法的基本功能,讓我們繼續(xù)向一些隨機(jī)的電子郵件發(fā)送一封樣本郵件。

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

          在上面的代碼中,我們正在向一個(gè)隨機(jī)的電子郵件發(fā)送一封詢問郵件。我們已經(jīng)定義了HTML主體,并添加了額外的參數(shù),如標(biāo)題。

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

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

          否則,我們的郵件正文就會以HTML的形式傳遞。當(dāng)我們的傳輸協(xié)議遇到錯(cuò)誤的內(nèi)容時(shí),可能會出現(xiàn)其他問題。在這一點(diǎn)上,我們假設(shè)當(dāng)這個(gè)特定的代碼被運(yùn)行時(shí),我們期望它能完美無缺地運(yùn)行。

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

          PHP郵件包

          前面的電子郵件發(fā)送方法的一個(gè)關(guān)鍵缺點(diǎn)是,它的特點(diǎn)或功能非常有限。這通常是在需要發(fā)送大量郵件時(shí)面臨的問題。

          在本節(jié)中,我們將研究如何克服這些缺點(diǎn),并隨后分析我們的電子郵件是否發(fā)展到了預(yù)期的收件人。

          我們將討論以下軟件包。

          • PHPMailer

          • Swift Mailer

          • 梨子郵件

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

          創(chuàng)建一個(gè)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.'; }
          登錄后復(fù)制

          在上面的代碼中,我們已經(jīng)安裝了PHPMailer包。我們還創(chuàng)建了這個(gè)類的一個(gè)新實(shí)例,$mail 。接下來,我們已經(jīng)創(chuàng)建了我們的Mailtrap賬戶,并在這里抓取了憑證。

          當(dāng)你創(chuàng)建一個(gè)項(xiàng)目時(shí),確保你將其與PHPMailer 選項(xiàng)集成,如下面的截圖所示。

          聊聊Mailtrap怎么整合PHP郵件

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

          接下來,我們設(shè)置了我們的setFrom() 方法來接收發(fā)件人的電子郵件和電子郵件標(biāo)題。然后,我們繼續(xù)配置收件人的電子郵件地址和電子郵件的主題。

          注意:之前,我們曾表示,我們可以將正文添加為HTML,然后適當(dāng)?shù)卦O(shè)置我們的內(nèi)容類型。

          在上面的郵件正文中,我們將信息定義為HTML,以便我們能夠定制郵件,滿足我們的要求。然后我們添加替代標(biāo)簽,再最后添加一個(gè)附件。然后,我們使用PHPMailer的$mail->send() 方法來發(fā)送我們的郵件。我們加入了if 語句來檢查我們的郵件是否已經(jīng)發(fā)送。

          當(dāng)我們的郵件未能送達(dá)時(shí),我們通過打印一個(gè)警告信息來通知用戶,否則就打印一個(gè)成功信息。讓我們繼續(xù)使用SwiftMailer ,實(shí)現(xiàn)同樣的功能,如下所示。

          在你的服務(wù)器上創(chuàng)建一個(gè)新的文件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(); }
          登錄后復(fù)制

          就像PHPMailer一樣,我們首先安裝這個(gè)包,并使用./vendor/autoload.php 路徑導(dǎo)入它。還需要注意的是,根據(jù)你的系統(tǒng)設(shè)置,這個(gè)路徑可能與你的應(yīng)用程序路徑不同。

          接下來,我們將傳輸設(shè)置為使用我們Mailtrap的Swift_SmtpTransport 。拿起你的憑證,按照上面的代碼設(shè)置。按照前面的步驟來配置你的應(yīng)用程序,使其使用Mailtrap包來發(fā)送郵件。

          現(xiàn)在,我們?nèi)绾沃牢覀兊泥]件已經(jīng)被送達(dá)?這就是我們使用Mailrap的原因。與PHPmail() 方法相比,該軟件包允許我們配置我們的應(yīng)用程序使用mailtrap,這給我們提供了一個(gè)平臺來測試我們的應(yīng)用程序,正如下一節(jié)所討論的。

          使用mailtrap測試電子郵件

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

          聊聊Mailtrap怎么整合PHP郵件

          接下來,點(diǎn)擊項(xiàng)目名稱,展開你所發(fā)送的郵件。

          聊聊Mailtrap怎么整合PHP郵件

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

          總結(jié)

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

          作者:DebugUsery

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

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號