PHP mail()发邮件无法指定发件人的问题

某个网站域名因为用了CDN,ping得的结果并不是服务器的IP,而是cname解析

****.com.             3600    IN      CNAME   a.****.com.cdn20.com.
a.****.com.cdn20.com. 600     IN      CNAME   1st.ecomA.glb0.lxdns.com.
1st.ecomA.glb0.lxdns.com. 34    IN      A       123.103.14.***

服务器的邮件系统是用sendmail,结果,用php的mail()函数发邮件的时候,发件人如果设置为@****.com,就会无效,邮件可以发出,但收件方看到发件人是@1st.ecomA.glb0.lxdns.com。

尝试在/etc/hosts里强制设定该域名的DNS解析,也无效。

原来,默认情况下,sendmail使用DNS服务器解析域名,不会使用/etc/hosts里的设置。解决方法是在/etc/mail/service.switch里设置sendmail解析域名的方式。

如果你想让sendmail先从hosts文件解析域名,然后再通过DNS服务器解析域名,在service.switch里输入以下内容(建议使用):

hosts       files dns

如果你想让sendmail仅仅从hosts解析域名,在service.switch里输入以下内容:

hosts       files

然后重启sendmail

service sendmail restart

就会生效了。

文章来自: 幻龙网络
引用通告地址: 太多垃圾评论了,暂时关闭引用通告
Tags:
分类:网站制作 | 没有论评 | 引用: 0 |


发表评论

*