亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

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

    聊聊Mailtrap怎么整合PHP郵件

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

    聊聊Mailtrap怎么整合PHP郵件

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

    使用Mailtrap整合PHP郵件

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

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

    前提條件

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

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

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

    • 一個(gè)mailtrap賬戶。

    目標(biāo)

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

    開(kāi)始使用mailtrap

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

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

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

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

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

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

    這些方法是。

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

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

    在這一節(jié)中,我們將使用PHP的mail() 方法來(lái)給我們的用戶發(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è)字符,否則郵件將不會(huì)被發(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ā)送一封詢(xún)問(wèn)郵件。我們已經(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ù)制

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

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

    PHP郵件包

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

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

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

    聊聊Mailtrap怎么整合PHP郵件

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

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

    注意:之前,我們?cè)硎荆覀兛梢詫⒄奶砑訛镠TML,然后適當(dāng)?shù)卦O(shè)置我們的內(nèi)容類(lèi)型。

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

    當(dāng)我們的郵件未能送達(dá)時(shí),我們通過(guò)打印一個(gè)警告信息來(lái)通知用戶,否則就打印一個(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)用程序路徑不同。

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

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

    使用mailtrap測(cè)試電子郵件

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

    聊聊Mailtrap怎么整合PHP郵件

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

    聊聊Mailtrap怎么整合PHP郵件

    注意:為了安全起見(jiàn),上述截圖上的一些功能已被跳過(guò)。

    總結(jié)

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

    作者:DebugUsery

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

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