Simple codes to send the MIME / HTML email with PHP
一般我們使用 PHP 程式傳送文字 email (text email) 可以很直覺地填寫好 message 欄位即可將信件送出, 但是如果想在 PHP 程式中傳送一封 HTML 格式的 email (HTML email) 則需要做一些小改變:
- 需要決定信件內容的 charset
- 需要設定 MIME 版本和 Content-type header 內容
簡單的 HTML 格式的 email 範例程式如下:
[cc lang=”php” height=”100%” width=”100%”]
信件內容: 這是一封 HTML 格式的 email
這裡可以用任何 HTML 語法
“;
//@ 為了傳送 HTML 格式的 email, 我們需要設定 MIME 版本和 Content-type header 內容.
$sHeaders = “MIME-Version: 1.0\r\n” .
“Content-type: text/html; charset=$sCharset\r\n” .
“From: $sMailFrom\r\n”;
//@ 傳送 email
mail($sMailTo, $sSubject, $sMessage, $sHeaders);
?>
[/cc]
另一種不用 MIME 格式的 HTML 格式的 email 寫法:
[cc lang=”php” height=”100%” width=”100%”]
HTML 格式的信件內容.
這裡可以使用任何 HTML 語法, 甚至是 JavaScript 及 CSS 語法都能(在 header 區域)使用
EOF;
//@ 為了傳送 HTML 格式的 email, 我們需要設定 Content-type header 內容.
$sHeaders = “Content-type: text/html; charset=$sCharset\r\n” .
“From: $sMailFrom\r\n”;
//@ 嘗試傳送 email
mail($sMailTo, $sSubject, $sMessage, $sHeaders);
?>
[/cc]
特別說明:
你會發現在上述範例中的標題欄位不含有中文字元(指的是:不含非ASCII碼)而是故意寫英文內容, 這是因為含有中文字元的 email 信件標題或送件/收件人名稱需要特別編碼過才不會出現亂碼. 解決方法和討論請見這一篇: [PHP] 解決(非 ASCII 編碼)中文郵件寄件者或中文郵件收件者名稱, 或中文信件標題亂碼問題
關鍵字: php html email, php MIME mail, php mime type header, php mail function, php mail form, php mail script