站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        聊聊Mailtrap怎么整合PHP郵件

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

        聊聊Mailtrap怎么整合PHP郵件

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

        使用Mailtrap整合PHP郵件

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

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

        前提條件

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

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

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

        • 一個mailtrap賬戶。

        目標

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

        開始使用mailtrap

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

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

        發(fā)送電子郵件的一個關(guān)鍵挑戰(zhàn)是,我們不確定我們的電子郵件是否被交付。為了確保電子郵件被送達,我們需要在開發(fā)和階段性水平上測試我們的電子郵件,以確保它們在生產(chǎ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ù)檢查這些郵件是否被送達或失敗。

        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ù)制

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

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

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

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

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

        現(xiàn)在我們了解了PHP的mail() 方法的基本功能,讓我們繼續(xù)向一些隨機的電子郵件發(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ù)制

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

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

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

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

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

        PHP郵件包

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

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

        我們將討論以下軟件包。

        • PHPMailer

        • Swift Mailer

        • 梨子郵件

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

        創(chuàng)建一個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)建了這個類的一個新實例,$mail 。接下來,我們已經(jīng)創(chuàng)建了我們的Mailtrap賬戶,并在這里抓取了憑證。

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

        聊聊Mailtrap怎么整合PHP郵件

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

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

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

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

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

        在你的服務(wù)器上創(chuàng)建一個新的文件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一樣,我們首先安裝這個包,并使用./vendor/autoload.php 路徑導(dǎo)入它。還需要注意的是,根據(jù)你的系統(tǒng)設(shè)置,這個路徑可能與你的應(yīng)用程序路徑不同。

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

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

        使用mailtrap測試電子郵件

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

        聊聊Mailtrap怎么整合PHP郵件

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

        聊聊Mailtrap怎么整合PHP郵件

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

        總結(jié)

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

        作者:DebugUsery

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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品午夜一级毛片密呀 | 欧美精品一区二区在线精品| 午夜精品射精入后重之免费观看| 国产午夜精品无码| 精品久久久久久综合日本| 国产精品午夜免费观看网站| 99re66热这里只有精品| 亚洲精品tv久久久久久久久| 久久精品国产第一区二区| 99久久伊人精品综合观看| 亚洲乱码精品久久久久..| 麻豆精品成人免费国产片| 久久亚洲精品无码AV红樱桃| 亚洲第一区精品日韩在线播放| 丰满人妻熟妇乱又仑精品| 亚洲精品国产首次亮相| 免费视频成人国产精品网站 | 国产情侣大量精品视频| 免费精品一区二区三区第35| 亚洲国产精品无码久久青草 | 国产精品久久久天天影视| 久久99精品久久久久久水蜜桃| 精品无码国产一区二区三区AV| 国产高清精品在线| 精品精品国产高清a毛片牛牛| 欧美日韩国产精品自在自线| 国产精品成人一区二区| 成人国内精品久久久久影院VR | 国产精品美女久久久久| 国产一区二区三区精品视频 | 久久久久亚洲精品天堂| 在线观看自拍少妇精品| 亚洲永久精品ww47| 亚洲中文字幕久久精品无码APP| 国产成人精品怡红院在线观看| 色欲精品国产一区二区三区AV| 国产精品免费视频观看拍拍| 成人国产精品秘 果冻传媒在线| 国内精品久久久久久99| 国产精品无码无片在线观看| 日韩精品欧美|