PHP 傳送電子郵件

在本教程中,你將學習如何使用 PHP mail() 函式直接從指令碼傳送簡單文字或 HTML 電子郵件。

PHP mail() 函式

傳送電子郵件對於 Web 應用程式非常常見,例如,當使用者在你的網站上建立帳戶時傳送歡迎電子郵件,向你的註冊使用者傳送簡報,或通過網站的聯絡表單獲取使用者反饋或評論等等。

你可以使用 PHP 內建 mail() 函式以純文字格式或格式化 HTML 從 PHP 應用程式動態建立和傳送電子郵件給一個或多個收件人。該函式的基本語法如下:

mail(to, subject, message, headers, parameters) 

下表總結了此函式的引數。

引數 描述
必需
to 收件人的電子郵件地址。
subject 要傳送的電子郵件的主題。此引數即主題行不能包含任何換行符(\ n \n)。
message 定義要傳送的訊息。每行應使用換行符-LF(\n)分隔。行不應超過 70 個字元。
可選
headers 這通常用於新增額外的標題,例如 FromCcBcc 。附加標題應使用回車符和換行符-CRLF(\r\n)分隔。
parameters 用於傳遞其他引數。

傳送純文字電子郵件

使用 PHP 傳送電子郵件的最簡單方法是傳送文字電子郵件。在下面的示例中,我們首先宣告變數 - 收件人的電子郵件地址,主題行和郵件正文 - 然後我們將這些變數傳遞給 mail() 函式以傳送電子郵件。

<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$message = 'Hi Jane, will you marry me?'; 
$from = 'peterparker@email.com';
 
// Sending email
if(mail($to, $subject, $message)){
    echo 'Your mail has been sent successfully.';
} else{
    echo 'Unable to send email. Please try again.';
}
?>

傳送 HTML 格式的電子郵件

使用 PHP 傳送文字訊息時,所有內容都將被視為簡單文字。我們將改進該輸出,並將電子郵件轉換為 HTML 格式的電子郵件。

要傳送 HTML 電子郵件,過程將是相同的。但是,這次我們需要提供額外的標頭以及 HTML 格式的訊息。

<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$from = 'peterparker@email.com';
 
// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
// Create email headers
$headers .= 'From: '.$from."\r\n".
    'Reply-To: '.$from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
// Compose a simple HTML email message
$message = '<html><body>';
$message .= '<h1 style="color:#f40;">Hi Jane!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Will you marry me?</p>';
$message .= '</body></html>';
 
// Sending email
if(mail($to, $subject, $message, $headers)){
    echo 'Your mail has been sent successfully.';
} else{
    echo 'Unable to send email. Please try again.';
}
?>

注意: 但是,PHP mail() 函式是 PHP 核心的一部分,但你需要在計算機上設定郵件伺服器才能使其真正起作用。

在接下來的兩章(PHP 表單處理PHP 表單驗證)中,你將學習如何在你的網站上實現互動式聯絡表單,以使用此 PHP 傳送郵件功能通過電子郵件接收使用者的評論和反饋。