本文目錄一覽:
為什麼用PHP發送到郵件的郵件有亂碼??求大神幫我解決啊。。解決了加分
你本來設置的編碼和你發郵件類的編碼不一致吧,你可以嘗試改下編碼。亂碼一般都是編碼出問題。。
PHP的MAIL()中文亂碼問題
1,你的統一你的資料庫 ,程序,網頁 三個的編碼
2,你可以在頁頭加上:header(Content-Type:text/html;CHARSET=gb2312)
3,如樓上說的 iconv(“現在編碼”,”變成的編碼”,”轉換的信息(這裡你的應該 就是信息$message)”) 或者用 mb_convert_encoding($message,”被轉換成編碼”,”現在編碼”)
PHP郵件接收到網頁表單信息為亂碼
require_once(“include/email/email.class.php”);
$smtpserver = “smtp.163.com”;//SMTP伺服器
$smtpserverport =25;//SMTP伺服器埠
$smtpusermail = $name.”@163.com”;//SMTP伺服器的用戶郵箱 自己的郵箱
//$smtpemailto = “*****@163.com”;//發送給誰 對方的郵箱
//$smtpuser = $name;//SMTP伺服器的用戶帳號 自己的郵箱 賬號 後面沒有@163.com
//$smtppass = $password;//SMTP伺服器的用戶密碼 自己的郵箱 密碼
//$mailsubject = “=?GB2312?B?”.base64_encode($subject).”?=”;”測試郵件系統”; //郵件主題
//$mailbody = $content; //郵件內容
$subject = stripslashes($title); //解決郵件標題亂碼
$mailsubject = “=?UTF-8?B?”.base64_encode($subject).”?=”;
$mailtype = “HTML”;//郵件格式(HTML/TXT),TXT為文本郵件
$smtp = new smtp($smtpserver,$smtpserverport,true,$name,$password);//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp-debug = FALSE;//是否顯示發送的調試信息
$smtp-sendmail($receive,$smtpusermail,$mailsubject,$content,$mailtype);
上面是我做郵件時候的設置,關鍵是這2行
$mailsubject = “=?UTF-8?B?”.base64_encode($subject).”?=”;
$mailtype = “HTML”;//郵件格式(HTML/TXT),TXT為文本郵件
用php發郵件時有亂碼怎麼解決
當用php的mail()函數發送郵件時,如果包含中文,標題產生亂碼,需要做以下處理即可解決:
先用函數base64_encode() — 使用 MIME base64 對標題數據進行編碼
標題字元串前加編碼類型例如: =?UTF-8?B?
標題字元串後加:?=
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286906.html