sendmail和MX记录的邮件服务器是不是虚拟主机上
题
这是我敢肯定有问题很容易解决,但我一直在一整天敲我的头。
我正在开发一个新的网站的客户端。网站驻留在(这是一个例子)website.com。我有一个PHP脚本的形式对游客的要求通过电子邮件发送给requests@website.com。
当我编码这在不同的域中的临时服务器上,所有工作得很好。当我把它移到website.com,该邮件未曾到达。 web服务器是与主要ISP在虚拟主机上。
下面就是从那时起,我学到的东西:我的客户的邮件服务器是微软的Exchange在一个盒子身体在他们的办公室。每当有人对外界电子邮件requests@website.com,邮件到达。 但的如果Web服务器发送到同一个电子邮件地址,它失败每次。这是的不强>一个PHP问题。我到Web服务器安全外壳,并都与sendmail和UNIX的邮件应用程序测试此。我还从壳通过电子邮件发送各种电子邮件账户进行了测试。我可以通过电子邮件发送自己,例如,只是在website.com域没人管。
总之,当我登录到website.com,邮件requests@website.com,user@website.com,another_user@website.com全部失败。所有其他地址做工精细。什么我发现是那些下降的电子邮件被发送到Web服务器的“包罗万象”的帐户,他们在其收件箱中坐。
我已经做了website.com MX查询。 MX记录指向mailsec.website.com。我可以telnet到mailsec.website.com端口25和看到SMTP服务器。
在我看来,当它发送邮件到requests@website.com website.com是不是做了MX查找。我的理论是,它识别域的地方,看到的是有把它输送到没有“要求”用户帐户,并丢弃邮件到包罗万象的帐户。我想要的是命令强制sendmail做MX查询和到Exchange服务器发送邮件。我在黔驴技穷就在这里。我无法弄清楚如何做到这一点。
对于这个问题,我可以是方式关闭基地这里,并已完全误诊此。 Internet邮件和MX似乎总是一个黑色的艺术对我来说,我的无知在这个问题肯定出。
解决方案
我认为这个问题是sendmail的(你的进程)正在与当地的sendmail守护进程。当地sendmail守护认为,因为它是website.com,它应该知道如何传送的电子邮件。不幸的是,在现场的实际地址不存在Web服务器上,因此它转储它在“包罗万象”的邮箱。你应该跟你的ISP,让他们更新自己的sendmail的配置,以便邮件的收件人是... @ website.com得到期待的邮件交换器,而不是在本地处理。
其他提示
Sendmail的默认猜测本地电子邮件域列表。 它可以用下面的线被关闭在sendmail.mc文件:
define(`confDONT_PROBE_INTERFACES',`True')
作为根列表本地电子邮件域改变之前和之后。
echo '$=w' | sendmail -Am -bt
您将看到哪些领域应该加入“手动”到(通常)在/ etc /邮件/本地主机名禁用自动猜测后文件。
P.S。 sendmail的问题,你可以使用新闻:comp.mail.sendmail 的
tvanfosson主要有,但作为一个临时的解决方法,你应该能够改变你的脚本,使其邮件“user@mailsec.website.com”,然后将邮件将被传递到实际的邮件服务器。
编辑tsm.cf文件(在/ etc /邮件/或类似的),以包括
FEATURE(relay_entire_domain)
的DOMAIN()和MAILER()线之间。既然你正在编辑的文件,你可能还希望提高安全性与
define(`confPRIVACY_FLAGS',``noexpn,novrfy'')
改变tsm.cf文件(或任何 sendmail的配置文件)后,重新启动或SIGHUP sendmail进程。
这个变化,因为在相同的进程空间中不存在该域的WWW和MX服务器是必要的;此FEATURE触发sendmail来处理用于在域的邮件使用它的外部递送机制。
的tsm.cf文件的编辑的部分应类似于这样:
DOMAIN(website.com)dnl
FEATURE(relay_entire_domain)dnl
define(`confPRIVACY_FLAGS',``noexpn,novrfy'')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
什么工作对我来说是在Web服务器上托管的网站,指向分配原来的域名服务器的主机添加MX记录。在这里介绍的情况下,将是一个mx记录指向:mailsec.website.com
我是新来的。想延长 RB_CWI 的答案,但我不可以评论。 他的溶液很好工作。
您是的不以定义域所需()。
然而,在我的系统我需要安装的sendmail-cf软件包。
在下面的说明中上完成的的CentOS 6.5 强>
首先,安装的sendmail-CF
sudo yum install sendmail-cf
然后,编辑senmail.mc
sudo vi /etc/mail/sendmail.mc
目前的文件的底部添加FEATURE(relay_entire_domain)DNL,所以它看起来像:
...
FEATURE(relay_entire_domain)dnl
MAILER(smtp)dnl # right above this line
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl
保存该文件,并重新启动sendmail。
sudo service sendmail restart
陷上同样的问题。 MX指向外部Exchange服务器,但PHP / sendmail的没有查找该记录。代替张贴由WordPress上这个网络服务器邮件丢弃在全部接收的邮箱。
的解决办法是删除对网络服务器的所有邮箱。现在的sendmail感兴趣的是MX和所有邮件到了交易所。
然而,Exchange使用网络空间的邮件服务器如智慧主机传出电子邮件。对于这个解决方案,我们能够使用FTP凭据访问邮件服务器。我认为这个解决方案并不在这个星球上的每一个供应商合作,但在我们的例子(all-inkl.com)它的工作。