这是我敢肯定有问题很容易解决,但我一直在一整天敲我的头。

我正在开发一个新的网站的客户端。网站驻留在(这是一个例子)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)它的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top