2016/08/04

php mail header設定 - 解決虛擬主機會有漏信的問題

之前幫朋友寫購物網站, 所以需要寄信給客戶以確認帳單, 但卻發現目前的虛擬主機會有漏信的問題, 這些日子以來很多顧客反應沒有收到確認信件, 所以要Debug是程式錯誤還是主機錯誤!

原本語法:

$store_main = "xxxxxxx@yahoo.com.tw"; /* 商家客服信箱 */$headers = "MIME-Version: 1.0rn";$headers .= "Content-type: text/html; charset=utf-8rn";$headers .= "From: ".$store_main."rn";  mail ($email, $subject, $body, $headers);

過一陣子, 我查出基本方向..
只要我有加$headers 就會寄件失敗

mail($to, $subject, $message, $headers); 

拿掉 $headers 就會寄件成功, 但會出現HTML亂碼與一些錯誤資訊

mail($to, $subject, $message, $headers); 

主機商回信:

您好:請將 $headers.= "From: wii遊戲片專賣店rn";裡面的 Email 更改為位於我們主機的 Email例如 service@domainname.com這樣就可以正常發信不會漏信因為您之前使用 xxxxxx@yahoo.com.tw 作為寄信者但是信件卻不是真的從 Yahoo 主機發送出去所以會被 Gmail、Yahoo、Hotmail 等判斷為廣告信而拒收如果還有任何問題隨時歡迎您再來信詢問謝謝

後來改成主機domainname的email
果然就變正常… 感覺是個滿初級的錯誤…..

沒有留言:

張貼留言