本文要為大家介紹有關(guān)整合PHP郵件的問題,PHP是當(dāng)今最受歡迎的網(wǎng)路開發(fā)程式語言之一,公司會(huì)向使用者發(fā)送郵件,通知他們新產(chǎn)品,如促銷郵件或與員工溝通。以下就給大家詳細(xì)介紹怎麼在PHP中整合流行的Mailtrap平臺(tái)來發(fā)送多封郵件,希望對(duì)需要的朋友有所幫助~
使用Mailtrap整合PHP郵件
PHP是當(dāng)今最受歡迎的網(wǎng)頁開發(fā)程式語言之一。公司向用戶發(fā)送郵件,通知他們新產(chǎn)品,如促銷郵件或與員工溝通。
在本教學(xué)中,我們來看看如何在我們的PHP中整合流行的Mailtrap平臺(tái)來傳送多封郵件。 【推薦學(xué)習(xí):PHP影片教學(xué)】
前提條件
要跟著本教學(xué),你需要具備以下條件。
PHP的基本概念,最好是PHP8.0。
簡(jiǎn)單郵件傳輸協(xié)定(SMTP)的基本概念。
一個(gè)mailtrap帳號(hào)。
目標(biāo)
在本教學(xué)結(jié)束時(shí),你應(yīng)該能夠?qū)ailtrap整合到你的PHP應(yīng)用程式中,以測(cè)試電子郵件。
開始使用mailtrap
開發(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á),我們需要在開發(fā)和階段性水平上測(cè)試我們的電子郵件,以確保它們?cè)谏a(chǎn)中運(yùn)作良好。
現(xiàn)在,Mailtrap隨著應(yīng)用程式開發(fā)過程的開發(fā)和暫存階段的到來而出現(xiàn)。它被用來測(cè)試電子郵件,以確保它們被送到預(yù)定的收件人手中。在下一節(jié)中,我們將深入了解PHP的郵件發(fā)送方法,它們是如何運(yùn)作的,以及它們可能面臨的問題。
PHP內(nèi)建的郵件發(fā)送方法
在PHP中,我們有2種不同的方法來傳送郵件給我們的系統(tǒng)使用者。
這些方法是。
透過使用PHP包,我們將在下一節(jié)看到。
使用內(nèi)建的方法。
在這一節(jié)中,我們將使用PHP的mail() 方法來傳送郵件給我們的使用者。然後,我們將繼續(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
上述方法接收了多個(gè)參數(shù),描述如下。
$to :這個(gè)參數(shù)指的是電子郵件的收件者。這可以是這樣的: 。 test@section.io
$subject:這指的是電子郵件的主題,你必須確保它符合RFC 2047 - MIME(多用途互聯(lián)網(wǎng)郵件擴(kuò)充)。
$message:這是你的郵件正文。我們需要確保每一行都用CRLF(\r\n)分隔。行數(shù)不應(yīng)大於70個(gè)字符,否則郵件將不會(huì)被發(fā)送。
$additional_headers (optional)- 這是一個(gè)陣列參數(shù),確保我們可以在郵件標(biāo)題中添加額外的資訊。這可能包括CC ,BCC 等。
現(xiàn)在我們了解了PHP的mail() 方法的基本功能,讓我們繼續(xù)向一些隨機(jī)的電子郵件發(fā)送一封範(fàn)本郵件。
<?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);
在上面的程式碼中,我們正在向一個(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';
否則,我們的郵件正文就會(huì)以HTML的形式傳遞。當(dāng)我們的傳輸協(xié)定遇到錯(cuò)誤的內(nèi)容時(shí),可能會(huì)出現(xiàn)其他問題。在這一點(diǎn)上,我們假設(shè)當(dāng)這個(gè)特定的程式碼被運(yùn)行時(shí),我們期望它能完美無缺地運(yùn)行。
然而,我們?cè)觞N能確保我們的電子郵件被送到預(yù)定的收件者手中呢?在下一節(jié)中,讓我們用一個(gè)郵件包來傳送相同的電子郵件。這些套件將幫助我們克服mail() 方法的局限性,這種方法在檢查我們的郵件是否被送達(dá)時(shí)相當(dāng)困難。
PHP郵件包
前面的電子郵件傳送方法的一個(gè)關(guā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 PHPMailer\PHPMailer\PHPMailer; 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.'; }
在上面的代碼中,我們已經(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)集成,如下面的截圖所示。
你會(huì)注意到,我們的截圖省略了用戶名和密碼。這些是自動(dòng)生成的,對(duì)每個(gè)用戶都是不同的。
接下來,我們?cè)O(shè)置了我們的setFrom() 方法來接收發(fā)件人的電子郵件和電子郵件標(biāo)題。然后,我們繼續(xù)配置收件人的電子郵件地址和電子郵件的主題。
注意:之前,我們?cè)硎?,我們可以將正文添加為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(); }
就像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è)平臺(tái)來測(cè)試我們的應(yīng)用程序,正如下一節(jié)所討論的。
使用mailtrap測(cè)試電子郵件
登錄你的Mailtrap賬戶,進(jìn)入你的收件箱部分,如以下截圖所示。
接下來,點(diǎn)擊項(xiàng)目名稱,展開你所發(fā)送的郵件。
注意:為了安全起見,上述截圖上的一些功能已被跳過。
總結(jié)
在這篇文章中,我們已經(jīng)廣泛地討論了PHP郵件方法的基本概念。我們已經(jīng)看到了PHP內(nèi)置的方法mail() 是如何限制我們發(fā)送帶有測(cè)試功能的郵件的,我們已經(jīng)用PHP包克服了這個(gè)問題。
作者:DebugUsery
鏈接:https://juejin.cn/post/7167615841398161416
以上是聊聊Mailtrap怎麼整合PHP郵件的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

PHP是一種流行的伺服器端腳本語言,它可以用於實(shí)現(xiàn)各種不同類型的應(yīng)用程序,其中包括郵件自動(dòng)回覆。郵件自動(dòng)回覆是一種非常有用的功能,可以用於自動(dòng)回覆一系列電子郵件,從而節(jié)省時(shí)間和精力。在本文中,我將介紹如何使用PHP實(shí)現(xiàn)郵件自動(dòng)回覆。第一步:安裝PHP和web伺服器在開始實(shí)作郵件自動(dòng)回覆之前,必須先安裝PHP和web伺服器。對(duì)大多數(shù)人來說,Apache是??最常

隨著網(wǎng)路的普及,各種網(wǎng)站和應(yīng)用程式頻頻問世,我們經(jīng)常需要註冊(cè)帳號(hào),但是我們經(jīng)常會(huì)忘記密碼。當(dāng)這時(shí)候,我們就需要找回密碼。找回密碼最常見的方式就是透過我們?cè)]冊(cè)時(shí)提供的電子郵件信箱。接下來,我們將會(huì)介紹如何使用PHP實(shí)作透過郵件找回密碼。首先,我們需要準(zhǔn)備好郵件伺服器的設(shè)定訊息,這些資訊包括SMTP伺服器和郵件信箱帳號(hào)密碼等。 SMTP伺服器是發(fā)送郵件時(shí)使用的伺服器地

是的,ItispossibletosendMassemailswithp.1)uselibrarieslikeLikePhpMailerorSwiftMailerForeffitedEmailsending.2)enasledeLaysBetenemailstoavoidSpamflagssspamflags.3))

PHP郵件發(fā)送失敗的原因包括服務(wù)器配置、代碼錯(cuò)誤和郵件提供商的要求。 1)確保PHP環(huán)境中的郵件功能已啟用。 2)檢查並正確設(shè)置php.ini中的sendmail_path。 3)在PHP代碼中正確設(shè)置郵件頭信息。 4)考慮使用SMTP認(rèn)證和PHPMailer庫。 5)檢查郵件日誌和發(fā)送到不同提供商進(jìn)行測(cè)試。

CustomHeadersheadersandAdvancedFeaturesInphpeMailenHanceFunctionalityAndreliability.1)CustomHeadersheadersheadersaddmetadatatatatataatafortrackingandCategorization.2)htmlemailsallowformattingandttinganditive.3)attachmentscanmentscanmentscanbesmentscanbestmentscanbesentscanbesentingslibrarieslibrarieslibrariesliblarikelikephpmailer.4)smtppapapairatienticationaltication enterticationallimpr

本文為大家介紹有關(guān)整合PHP郵件的問題,PHP是當(dāng)今最受歡迎的網(wǎng)頁開發(fā)程式語言之一,公司會(huì)向使用者發(fā)送郵件,通知他們新產(chǎn)品,如促銷郵件或與員工溝通。以下就給大家詳細(xì)介紹怎麼在PHP中整合流行的Mailtrap平臺(tái)來發(fā)送多封郵件,希望對(duì)需要的朋友有所幫助~

隨著網(wǎng)路的不斷發(fā)展,電子郵件已成為人們?nèi)粘I畈豢苫蛉钡囊徊糠?。郵件盒子是一種常見的郵件管理工具,它可以幫助我們輕鬆管理收件匣、已發(fā)送和垃圾郵件等。本文將詳細(xì)介紹如何使用PHP實(shí)作系統(tǒng)郵件盒功能。一、建立資料庫表格首先,我們需要在資料庫中建立一個(gè)名為"emails"的表格,用來儲(chǔ)存郵件相關(guān)的資訊??梢允褂孟铝蠸QL語句進(jìn)行建立:CREATETABL

隨著網(wǎng)路的發(fā)展,郵件已經(jīng)成為人們生活和工作中不可或缺的一部分。在網(wǎng)路開發(fā)中,發(fā)送郵件是一個(gè)非常重要的功能,無論是在網(wǎng)站註冊(cè)、忘記密碼、訂單確認(rèn)、使用者回饋等方面,發(fā)送電子郵件都扮演著至關(guān)重要的角色。而在PHP中,實(shí)作發(fā)送郵件非常簡(jiǎn)單。在本文中,我們將介紹如何使用PHP來實(shí)現(xiàn)發(fā)送郵件的功能。
