现在的位置: 首页 > 综合 > 正文

mail函数使用错误排除记

2013年03月08日 ⁄ 综合 ⁄ 共 1061字 ⁄ 字号 评论关闭

昨天学习了php的mail函数
做了一个用户反馈意见,然后发送意见给网站管理员的页面
可是意见提交之后,返回了一个错误
Warning: mail() [function.mail]: SMTP server response: 550 5.7.1
Unable to relay for wsq239@163.com in  
D:/MyDocument/php/jh/admin/sendfeedback.php on line 70
这个错误让我着实头疼了一会儿
后来才了解到,php中mail函数是使用系统中自带的一个smtp协议来发送邮件的
在我的机器中(win xp pro+apache+php+mysql)装了iis之后
里面默认有一个“默认smtp虚拟服务器”
在使用它之前,我们需要在php配置文件中做些改动
找到下面这一段,然后根据自己的情况进行改动
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = cocowool@msn.com
后面还有关于linux如何设置的
可我linux一点都不懂,所以也就没有管了,呵呵
如果你不设置sendmai_from,系统会出这样的提示
mail函数也是不能够用的
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in
D:/MyDocument/php/jh/admin/sendfeedback.php on line 70
php.ini改好之后,我发现仍然存在着第一个问题
听说使用smtp要有权限的,是不是我当前的计算机用户没有权限
我觉得照道理不应该阿,因为计算机上只有我一个用户
不管先改了再说
虚拟服务器->属性->访问->访问控制->身份验证
将基本身份验证和集成windows验证前的复选框都去掉
只剩下匿名验证
可是问题依然unable to relay
baidu一下,据说是中继的问题
然后依照指示
虚拟服务器->属性->访问->中继
将那个复选框选好,然后再添加了127.0.0.1的本地地址
测试,ok
问题解决了
可是对于smtp仍然不是十分得清楚
而且原来想的在本地搭建一个邮件测试环境的想法并没有实现
因为现在只能发送邮件,却没有收邮件的功能
baidu了一下,发现imail可能会是一个很好的工具
当然还有很多比如iwebmail,qmail等等,相中了imail
具体的配置还没有弄
等弄好了写文发出来

【上篇】
【下篇】

抱歉!评论已关闭.