解決163/sohu/sina不能夠收到PHP MAIL函式發出郵件的問題
1 最近準備改改自己的個人主頁,加上發郵件到功能,發現居然不是那麼好用。gmail和msn可以收到郵件,但是163/sina/sohu的郵箱居然都收不到,非常鬱悶。其實程式碼也很簡單。 php manual 已經說得相當清楚了。
但是,如果我使用Linux Shell 的mail命令是可以傳送成功的,不過多加了一條-f 引數偽造發件人。這是唯一的不同,於是maillog 的其中一個欄位ctladdr顯示也不一樣。不再是apache使用者,我懷疑163等國內的郵件服務提供商,把所有的apache的使用者的郵件當成垃圾郵件處理掉了。
根源找到,於是問題就很好解決了,查一下php的手冊,發現mail函式原來也是可以偽造發件人的。
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
在第六個引數additional_parameters使用額外的引數"-f [email protected]", 問題就解決了。
程式:
$email=$_POST['email'];
$title='易物天下商城重置密碼(系統郵件請勿回覆)';
$findPwd_url=$co->WEBSITE_URL.'/member_login1?mid='.base64_encode($_POST['phone']).'&out='.base64_encode(time());
$content="尊敬的會員:
您好! <br/>
這是一封密碼重置郵件。如果您並未嘗試修改密碼,請忽略本郵件。<br/>
您可以通過點選以下連結重置帳戶密碼(基於安全考慮,本連結24小時內有效)。 <br/> ".$findPwd_url." <br/>
如果您不能點選以上鍊接,請將該連結複製到瀏覽器位址列中訪問。 <br/>
客服熱線:400-688-3913";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=gbk" . "\r\n";
$headers .="From:
// $data['status']= mail($email,$title,$content,$headers,'-f [email protected]')?1:0;
$data['status']=mail($email,$title,$content,$headers)?1:0;
2.在伺服器上配置代理