澳门新葡萄京娱乐场php发送email (邮件)若干问题总结(成功smtp案例见附件)

!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN xmlns=
content=text/html; charset=utf-8 /titlephpinfo/title/headbody?$to =
atoat@sina.com;$subject = php-Mail;$msg = I completely understand SMTP
servers now!;$headers = From: atoat@163.comrnReply-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:webserverhtdocs on line 14php.ini配置情况[mail function]澳门新葡萄京娱乐场,; For Win32
only.SMTP = localhostsmtp_port = 25; For Win32 only.sendmail_from =
atoat@163.com已经安装了windows自带的smtp服务找了好久才发现需要在smtp服务的中继选项中添加本机IP地址虚拟服务器-属性-访问-中继选择仅以下列表=单台计算机=添加127.0.0.1的本地地址程序没有出现问题,但收件箱中没有立即收到信息.没有收到是因为我的机子是在内网中,不能把邮件发送到外网.解决方法:在网关做个端口映射,把25端口映射到本机.或者本机有公网IP.<

Warning: mail() [function.mail]: Failed to connect to mailserver at
“localhost” port 25, verify your “SMTP” and “smtp_port” setting in
php.ini or use ini_set() in

问题一

Warning: mail() [function.mail]: Failed to connect to mailserver at
“localhost” port 25, verify your “SMTP” and “smtp_port” setting in
php.ini or use ini_set() in

解决方法:

PHP的Mail函数使用的是SMTP服务发出E-Mail的。也就是说你需要在php.ini里配置好适当的SMTP服务器地址和端口信息。如果你需要在本机上发出E-Mail,即

SMTP = localhost

smtp_port = 25

这样的话,你需要在你自己的本机上配置上SMTP服务才可以。你可以尝试打开IIS的SMTP服务。

问题二

mail(): SMTP server response: 550 5.7.1 Unable to

解决方法:
关键一步:我的电脑->管理->服务和应用程序
->SMTP虚拟服务器上点击右键,在弹出的属性窗口里进行如下设置:
点击访问选项卡,再点击中继,在弹出的窗口出点击添加,然后选单台计算机,添加IP地址为
127.0.0.1。

这时就可以测试一下了..如果不可以继续往下操作…

还有的网友说要修改php.ini文件,做成如下配
置,但我觉得是没有必要的,我用的默认设置就可以,如果您经过以上设置还不可以发送的话,就再修改一下吧,注意修改后要重启web服务器:
php.ini的设置: 可使用默认选项,不用修改
SMTP = localhost      //默认,不用修改
smtp_port = 25        //默认,不用修改
sendmail_from=你的设定值  //如果不指定,就必须在程序中指定

这样就可以使用mail函数了
<?php
$to = “***@163.com”;  //改成自己的邮箱进行测试
$subject = “Test mail”;
$message = “Hello! This is a simple email message.”;
$from = “shf@qq.com”;  //随意设置
$headers = “From: $from”;
mail($to,$subject,$message,$headers);
echo “Mail Sent.”;
?>

 注意:收不到邮件还有另一个原因就
是目标邮件系统服务商的设置,有的当成正常邮件,有的当成垃圾邮件,还有的直接不接收,如果一个邮箱不成功的话,建议换个邮件服务提供商试试。据我测试
gmail 163可以收到,qq有时收不到。

小结:
这种“Unable to relay
user@externaldomain.com”的错误通常属于设计意图。也就是说,为了防止Internet上的Unsolicited
Commercial E-Mail
(UCE),Microsoft的SMTP服务,默认,是不允许一封邮件通过它中继到外面的邮件地址的!

 

附件:
smpt_class.php

发表评论

电子邮件地址不会被公开。 必填项已用*标注