真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決php的mail函數(shù)發(fā)送UTF-8編碼中文郵件時標(biāo)題亂碼的問題-創(chuàng)新互聯(lián)

這篇文章運(yùn)用簡單易懂的例子給大家介紹如何解決php的mail函數(shù)發(fā)送UTF-8編碼中文郵件時標(biāo)題亂碼的問題,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

為五臺等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及五臺網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、五臺網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

php的mail函數(shù)發(fā)送UTF-8編碼中文郵件時標(biāo)題亂碼的解決辦法:1、將subject里頭的文字符合RFC 2047的規(guī)范;2、在headers中添加【content-type】;3、對用來發(fā)送郵件的主機(jī)進(jìn)行正確配置。

php的mail函數(shù)發(fā)送UTF-8編碼中文郵件時標(biāo)題亂碼的解決辦法:

1.使用 PEAR 的 Mail 類

PEAR 的 Mail 類可以讓你選擇使用 sendmail 或者 SMTP 方式發(fā)信,這樣的包裝好的接口很好用,你沒有必要去自己重新發(fā)明輪子。

2.關(guān)于headers 中subject 的亂碼

不要把任何除了iso-8859-1編碼之外的文字直接放進(jìn)subject,正確的方式是讓subject 里頭的文字符合RFC 2047的規(guī)范,假設(shè)你的subject 處的文字的編碼是GB2312,那么正確的subject 應(yīng)該是這樣的格式

$headers['subject'] = '=?GB2312?B?' . base64_encode('標(biāo)題文字') . '?=';

如果是UTF-8 的話,把上面開頭的GB2312 替換成UTF-8 即可。推薦在標(biāo)題處使用GB2312 編碼,因為MTA 的分化實在是嚴(yán)重,大部分的MSP使用的都是自己開發(fā)的 MTA,而相信國內(nèi)的大部分 MTA 無論如何都是可以支持 GB2312 編碼的。

而如果是發(fā)送到國外的MSP,則推薦你在subject 處使用經(jīng)過base64 編碼的 UTF-8 文字,因為他們很可能不支持 GB2312 編碼。

3.一定在headers 中添加content-type

電子郵件的 headers 中的 content-type 處類似網(wǎng)頁的,也是 text/plain; charset=gb2312 這樣的格式。這個選項主要對收郵件的客戶端有意義,可以避免在客戶端出現(xiàn)亂碼,部分的 Webmail 也會根據(jù)這里的設(shè)置對郵件的內(nèi)容進(jìn)行編碼轉(zhuǎn)換以正確顯示。你可以設(shè)想一下你用 gb2312 編碼發(fā)到 .com.tw 的郵箱時候的情況。

4.對你用來發(fā)送郵件的主機(jī)進(jìn)行正確配置

1)一定配置反向解析,因為大部分的非固定 IP 都無法做反向解析,部分反垃圾郵件策略以此作為判斷依據(jù)。

2)一定配置 MX 解析,道理同上。

3)確保你的 return path 是能夠收到退信的,否則你的郵件發(fā)送服務(wù)器可能會進(jìn)入接收端的黑名單。

$subject = stripslashes($the_post['Title']); 
$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/plain; charset=utf-8\r\n"; 
$headers .= "Content-Transfer-Encoding: 8bit\r\n"; 
$message = stripslashes(strip_tags($the_post['Content'])); 
mail($to, $subject, $message, $headers);

先用函數(shù)base64_encode()— 使用MIME base64 對數(shù)據(jù)進(jìn)行編碼

標(biāo)題字符串前加編碼類型例如: =?UTF-8?B?

標(biāo)題字符串后加:?=

例如:

這樣,發(fā)送的中文郵件標(biāo)題就不是亂碼了。

關(guān)于如何解決php的mail函數(shù)發(fā)送UTF-8編碼中文郵件時標(biāo)題亂碼的問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當(dāng)前標(biāo)題:如何解決php的mail函數(shù)發(fā)送UTF-8編碼中文郵件時標(biāo)題亂碼的問題-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://weahome.cn/article/cojppd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部