php mail錯誤的解決方法:1.在smtp服務的中繼選項中加入本機IP位址;2、在閘道做個連接埠映射,把25埠映射到本機即可。
本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦
如何解決php mail錯誤問題?
php的mail()函數出錯的問題
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>phpinfo</title> </head> <body> <? $to = "atoat@sina.com"; $subject = "php-Mail"; $msg = "I completely understand SMTP servers now!"; $headers = "From: atoat@163.com/r/nReply-To: atoat@163.com"; mail("$to", "$subject", "$msg", "$headers"); echo "finished!"; ?> </body> </html>
出現的錯誤:
Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for atoat@sina.com in C:/webserver/htdocs/www/mail.php on line 14
php.ini設定狀況
[mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ; For Win32 only. sendmail_from = atoat@163.com
已經安裝了windows自帶的smtp服務
找了好久才發現需要在smtp服務的中繼選項中添加本機IP位址
虛擬伺服器->屬性->訪問-> ;中繼
選擇"僅以下清單"=>"單一電腦"=>新增127.0.0.1的本機位址
程式沒有出現問題,但收件匣中沒有立即收到訊息.
沒有收到是因為我的機子是在內網中,不能把郵件寄到外網.
解決方法:
在網關做個連接埠映射,把25連接埠映射到本機.或本機有公網IP.
推薦學習:《PHP影片教學》
以上是如何解決php 郵件錯誤問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!