Re: [請益] mail()的問題
※ 引述《maluu (lalalalala)》之銘言:
: 推一下phpmailer.....我覺得不錯用
: http://phpmailer.sourceforge.net/
: ※ 引述《chweng ()》之銘言:
: : 是這樣的 我想做一個線上寄信的系統 所以會用到mail()函數
: : 我的網頁都是用UTF-8編碼的 這樣一來 用這個系統寄出的信也都是UTF-8編碼的
: : 可是我用Outlook Express收信時卻都是亂碼
: : 雖然可以在編碼的地方正確地選回UTF-8 可是總是多一個步驟
: : 而且一收到就是亂碼 還挺容易直接被我當成垃圾信砍了
: : 所以想問一下 是否可以使寄出信件的編碼為BIG5
: : 或是改變信件的檔頭 讓OE不要誤判
: : 如果可以的話 我是很不想把那一頁改回BIG5編碼啦
: : 希望能有其他方法 請問要怎麼做比較好呢?
你可以參考我的作法:
要注意的地方有 1. $author 2. $subject 3. header 的 content_type
作者和標題的中文要用 mb_encode_mimeheader() 做編碼,
如果內碼是 utf-8, 就填 'utf-8', 如果是 'big5 就填 'big5'
例如: $subject = mb_encode_mimeheader("中文標題", "big5", "b");
第三個參數 'b' 是 base64 編碼, 你也可以改用 'q' (quoted-printable 編碼)
內文的部份可以由 header 的 "Content-Type: " 來設定他的內碼
$to 的部份, 有中文的地方也要用 mb_encode_mimeheader() 轉換
mb_internal_encoding("UTF-8"); // 文字原始的編碼
$from = mb_encode_mimeheader($author, "utf-8", "b");
$from .= "<xxx@aaa.bbb.com.tw>";
$headers = "From: $from\r\n" .
"To: $to\r\n" .
"MIME-version: 1.0\r\n" .
"Content-Transfer-Encoding: 8bit\r\n" .
"Content-Type: text/html; charset=utf-8\r\n";
// base64
$subject = mb_encode_mimeheader($subject, "utf-8", "b");
$ret = mail($to, $subject, $content, $headers);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.43.194.80
推
11/03 17:34, , 1F
11/03 17:34, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章