Solution to php mail error: 1. Add the local IP address in the relay option of the SMTP service; 2. Make a port mapping on the gateway and map port 25 to the local machine.
The operating environment of this article: Windows7 system, PHP7.1 version, DELL G3 computer
How to solve the php mail error problem?
php mail() function error problem
<!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>
Error:
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 configuration
[mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ; For Win32 only. sendmail_from = atoat@163.com
already installed I found the SMTP service that comes with windows
After searching for a long time, I found that I need to add the local IP address in the relay option of the SMTP service
Virtual server->Properties->Access-> ;Relay
Select "Only the following list" =>"Single computer"=>Add the local address of 127.0.0.1
There is no problem with the program, but there is nothing in the inbox I received the message immediately.
I didn’t receive it because my machine is on the internal network and cannot send emails to the external network.
Solution:
Make a port mapping on the gateway and map port 25 to the local machine. Or the machine has a public IP.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to solve php mail error problem. For more information, please follow other related articles on the PHP Chinese website!