首頁 >後端開發 >php教程 >php如何發送電子郵件?使用PHPMailer實現

php如何發送電子郵件?使用PHPMailer實現

青灯夜游
青灯夜游原創
2018-11-02 18:11:075270瀏覽

php如何傳送電子郵件?這篇文章為大家介紹使用PHPMailer SMTP實作傳送電子郵件的方法,讓大家了解如何設定和使用PHPMailer 。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

PHPMailer是一個流行的PHP郵件發送庫。它支援透過mail()函數或SMTP發送郵件。簡而言之,PHPMailer是一種在基於PHP的環境中發送電子郵件的有效方法。

下面我們來看看

第1步- 收集PHPMailer的詳細資訊

要將PHPMailer與Hostinger SMTP一起使用,首先需要建立一個電子郵件帳戶。您可以在網路主機面板的「 電子郵件帳號」 部分執行此操作  。

php如何發送電子郵件?使用PHPMailer實現

完成後,抓住位於同一部分的SMTP詳細資料:

php如何發送電子郵件?使用PHPMailer實現

你現在應該有四個部分,它們是:

1、電子郵件帳戶使用者名稱

2、電子郵件帳號密碼

3、SMTP主機

4、SMTP連接埠

第2步- 安裝PHPMailer

由於我們擁有所有必需的詳細信息,因此我們可以開始PHPMailer設定。一種簡單的方法是使用Composer。它已預先安裝在我們的共享主機方案中,因此您只需通過SSH連接並執行以下命令:

cd public_html

然後運行:

composer require phpmailer/phpmailer

稍等片刻,安裝完成,PHPMailer將出現在新建立的目錄中。

第3步 - 了解PHPMailer

要了解PHPMailer及其工作原理,讓我們研究一下使用SMTP進行傳遞的範例。

<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = &#39;mx1.hostinger.com&#39;;
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = &#39;test@hostinger-tutorials.com&#39;;
$mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
$mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addReplyTo(&#39;reply-box@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
$mail->Subject = &#39;PHPMailer SMTP message&#39;;
$mail->msgHTML(file_get_contents(&#39;message.html&#39;), __DIR__);
$mail->AltBody = &#39;This is a plain text message body&#39;;
$mail->addAttachment(&#39;test.txt&#39;);
if (!$mail->send()) {
    echo &#39;Mailer 错误: &#39; . $mail->ErrorInfo;
} else {
    echo &#39;发送消息!&#39;;
}
?>

讓我們看看每個元件的作用:

php如何發送電子郵件?使用PHPMailer實現

#專業提示:

##SMTPDebug = 2 ; 在測試腳本並查看腳本的工作原理時非常有用。

將其設為SMTPDebug = 0; 在最終版本中,以避免最終使用者看到SMTP傳遞報表。

如果您檢查了整個程式碼,您會注意到我們正在做的事情與第一個範例中的一些不同。我們正在發送HTML訊息。它的內容將取自位於同一目錄中的message.html 檔案。與純文字訊息相比,這使您可以格式化文字並提供更多功能。

第4步 - 執行PHPMailer腳本

讓我們建立一個testphpmailer.php文件,並使用我們之前檢索到的SMTP詳細資料填寫所有欄位。透過在瀏覽器中輸入YourDomain.com/testphpmailer.php來執行腳本  ,您將看到類似的訊息:

php如何發送電子郵件?使用PHPMailer實現

第5步- PHPMailer聯絡表單範例

您可以使用PHPMailer,而不僅僅是發送簡單的訊息。您可以利用它的一種方法是建立一個聯絡表單,您的訪客或使用者可以與您聯絡。以下是此類腳本的基本範例:

<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = &#39;mx1.hostinger.com&#39;;
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->Username = &#39;test@hostinger-tutorials.com&#39;;
    $mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
    $mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Mr. Drago&#39;);
    $mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
if ($mail->addReplyTo($_POST[&#39;email&#39;], $_POST[&#39;name&#39;])) {
        $mail->Subject = &#39;PHPMailer contact form&#39;;
        $mail->isHTML(false);
        $mail->Body = <<<EOT
Email: {$_POST[&#39;email&#39;]}
Name: {$_POST[&#39;name&#39;]}
Message: {$_POST[&#39;message&#39;]}
EOT;
if (!$mail->send()) {
            $msg = &#39;对不起,出了点问题。请稍后再试。&#39;;
} else {
            $msg = &#39;发送消息成功!谢谢您联络我们。&#39;;
}
} else {
        $msg = &#39;电子邮件地址无效,邮件被忽略。&#39;;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>邮件表单</title>
</head>
<body>
<h1>Let&#39;s get in touch!</h1>
<?php if (!empty($msg)) {
    echo "<h2>$msg</h2>";
} ?>
<form method="POST">
    <label for="name">名称: <input type="text" name="name" id="name"></label><br><br>

    <label for="email">电子邮件: <input type="email" name="email" id="email"></label><br><br>

    <label for="message">消息:<textarea name="message" id="message" rows="8" cols="20"></textarea></label><br><br>
    <input type="submit" value="发送">
</form>
</body>
</html>

最終結果是:

php如何發送電子郵件?使用PHPMailer實現

一旦使用者提交了他的訊息,他將得到確認,內容將到達addAddress 欄位中輸入的電子郵件信箱  。

專業提示:如果PHPMailer聯絡表單不起作用,請新增以下行以查看導致該問題的原因:  $ mail-> SMTPDebug = 2; 

#一旦完成,不要忘記將其刪除或設定為零!

以上是php如何發送電子郵件?使用PHPMailer實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn