不能发送电子邮件到我自己的域名的地址

我有一个简单的PHP脚本在我的域名发送给我一个电子邮件:

... $toMail = "me@gmail.com"; //this works - I get the email at my gmail $toMail = "me@mydomain.com"; //this doesn't - I get nothing mail($toMail, $subject, $message, $header); 

我改变了什么设置来解决这个问题?

我自己有这个问题,当我最近重新devise一个网站。

我们的系统build立的方式有一个问题,所以系统认为,因为电子邮件来自同一个域名,这是一封垃圾邮件,因此被封锁了。

请咨询您的系统pipe理员,您可以发送电子邮件等

要么,要么你必须修改头看起来像是从外部地址发送。 希望你把它分类。

对于使用Google Apps进行电子邮件的人,但将您的主机放在其他提供程序中,对于不熟悉cPanel的人员,这是更详细的说明。

当我发送电子邮件到我的域内的帐户时,我可以解决使用PHP表单发送来自我的域的电子邮件的问题。

即mydomain.com联系表格发送电子邮件至contact@mydomain.com。 即使我的网域使用「Google应用服务」的网域拥有正确的MXlogging,上述function也无法正常运作。

正如迈克指出(和其他人)上面的问题已经解决:将MXlogging添加到cPanel。

  1. 进入cPanel
  2. 去cPanel邮件部分
  3. searchMX条目维护,有时图标上方没有文本。
  4. select相关的域
  5. 更改电子邮件路由到远程邮件交换器。
  6. 添加所有的谷歌MXlogging,因为它们在您的域configuration使用适当的优先级值。 您可以在这里查看logging,并优先https://support.google.com/a/answer/174125
  7. 仔细检查远程邮件交换器。 被选中。

使用此设置,我可以使用邮件PHP函数将电子邮件发送到与我的网站相同域中的电子邮件帐户。

Google应用说明讨论MXlogginghttps://support.google.com/a/answer/54717?hl=zh_CN

https://serverfault.com/questions/65365/disable-local-delivery-in-sendmail顶部的答案似乎对我来说是正确的。; 它的要点是,你需要在你的sendmail.mc中的以下内容:

 define(`MAIL_HUB`, 'example.com.')dnl define(`LOCAL_RELAY`, 'example.com.')dnl 

其中example.com是有问题的域名。

如果您使用后缀 ,请执行以下操作:

  1. 通过SSH连接到你的服务器。
  2. 编辑你的main.cf文件:

nano /etc/postfix/main.cf

  1. 使用注释以下行:

# mydestination = ...

  1. 添加在main.cf文件的末尾:

mydestination =

  1. 通过运行以下命令重新载入您的postfixconfiguration

/etc/init.d/postfix reload

你需要在你的邮件function上设置一个额外的参数。 在你的工作例子中,你需要用'-f'来预先给你的电子邮件地址

mail($toMail, $subject, $message, $header, "-fme@mydomain.com");

我有同样的问题,并能够通过以下方式解决它。 我不在服务器上本地存储邮件,而是使用注册服务器上的MXlogging将邮件导向到Google Apps。 原来MXlogging也需要在Cpanel中更新,因为服务器没有从注册服务器处取得MXlogging,而是因为没有本地MXlogging或邮箱而丢弃。 我更新了Cpanel上的MX条目以匹配注册商的MX条目,问题立即得到修复

你的电子邮件托pipe在不同于该网站的服务器上吗? 如果是这种情况,PHP脚本可能会尝试将其发送到内部,在这种情况下,它将会消失,而其他目标电子邮件将被发送到Internet并正确路由。

我find的解决scheme是禁用您的networking主机上的邮件服务器,然后PHP将消息放到互联网上正确发送。

我同意迈克尔Hellein,根本问题可能是您的sendmail考虑您的域example.com电子邮件帐户作为本地帐户。 如果是这样,这里有几个指导链接:

但在我的情况下,使用FreeBSD 8.2,真正的诀窍是:

 # cd /etc/mail # vim freebsd.mc 

添加这两行:

 define(`MAIL_HUB', `example.com.')dnl define(`LOCAL_RELAY', `example.com.')dnl 

就在之前:

 MAILER(local) MAILER(smtp) 

然后:

 # make 

这是输出:

 cp freebsd.mc host.example.com.mc /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 host.example.com.mc > host.example.com.cf cp freebsd.submit.mc host.example.com.submit.mc /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 host.example.com.submit.mc > host.example.com.submit.cf 

然后:

 # cp sendmail.cf sendmail.cf.bak # cp host.example.com.cf sendmail.cf # /etc/rc.d/sendmail restart 

希望这可以让一些人头疼。

用PostFix,Debian7,smtp Mailjet

如果域是my-domain.com ,则在/etc/postfix/main.cf中更改

 mydestination = my-domain.com, localhost, localhost.localdomain, localhost 

 mydestination = localhost, localhost.localdomain, localhost 

确保你实际上可以发送邮件到你的域名邮件账户,然后检查你的代码/电子邮件确保一切拼写正确..如果没有这帮助,我不知道什么地方出了问题..

正如其他人所解释的,一些服务器被configuration为拒绝在发送服务器上缺less有效电子邮件地址的电子邮件。 检查$ headersstring是否包含已定义的有效电子邮件地址“From:foo@example.com”。

我有同样的问题,因为我被托pipe在另一台服务器上的电子邮件,我只需要禁用本地邮件服务器。

我有这个问题几次,罪魁祸首是如果电子邮件托pipe在另一台服务器(例如谷歌应用程序)。 邮件发送到本地域时,它不会在MXlogging上进行查找,因此无法正确路由。 解决这个问题的方法就是简单地让主机在你的服务器上禁用邮件function。

我也有这个问题。 禁用邮件服务器意味着没有邮件发送! 所以我所做的修复是从/etc/mail/local-host-names文件中删除所有本地域名

确保您的txtlogging已正确设置为您的域名。 这通常发生在你不把这个logging在txtlogging中时: @ (None) v = spf1 include:_spf.google.com〜all

我有一个类似的问题,其中所有的邮件被完全发送到其他域名,如Gmail,生活,雅虎等,但所有的邮件将消失在本地域名。 我有一个基于Linux的运行Qmail的godaddy VPS服务器。

我通过删除var / qmail / control / virtualdomains文件中的特定域名解决了这个问题。

SMTP邮件服务器也是一个选项。

我花了超过8小时的这个错误,并解决它只是改变头到任何其他的电子邮件地址,它将工作