很多人使用php mail發送電子郵件時會發現自己的郵件發送不出去,或者接收方無法收到郵件。這個問題很常見,但也很容易解決,本文將帶大家探討一下引起這一問題的原因以及如何解決,歡迎大家閱讀。
最常見的情況是php mail被服務器禁用了,因為php mail默認使用的是服務器smtp服務。而大多數共享主機服務器都會禁用這個功能以避免垃圾郵件的發送。此時,你需要使用第三方郵件服務商的API來發郵件。比如Gmail、sendgrid等。這里以Gmail為例:
//SMTP賬號信息 $mail->isSMTP(); $mail->SMTPAuth=true; $mail->SMTPSecure='ssl'; $mail->Host = 'smtp.gmail.com'; $mail->SMTPDebug = 0; $mail->Username = '你的gmail賬號'; $mail->Password = '你的密碼'; $mail->Port = 465; $mail->From = '你的郵箱地址';
還有一個常見的問題就是被退信了。原因可能有很多,比如格式不正確、發件地址和收件地址不匹配等等。下面來一一解析:
1. 格式不正確。有些郵件系統會檢查郵件格式是否符合SMTP協議,并拒絕接收不合規范的郵件內容。所以郵件格式一定要規范,建議使用PHPMailer等工具。
2. 發件地址和收件地址不匹配。這個問題也很常見,如果你使用的是發送郵件的地址和你的服務器不在同一域名下,可能會被拒收。所以最好的方式是在相同的域名下使用更為妥當。
3. 郵件服務器的ip或域名被列為垃圾郵件。檢查一下你的郵件服務器是否被列入了垃圾郵件的黑名單中,如果是,建議使用其他的郵件服務商或與管理員聯系解決。
4. 郵件服務器繁忙。這個問題其實沒有太大的解決辦法,只能過一段時間再試一次。
總之,php mail收不到郵件的原因很多,需要仔細排查并解決。同時,也可以考慮使用第三方郵件服務商的API來解決問題。
上一篇php mail 測試
下一篇php mail 函數