Php can';t向我自己域中的地址发送电子邮件
我在我的域中有一个简单的php脚本,可以向我发送电子邮件:Php can';t向我自己域中的地址发送电子邮件,php,email,dns,Php,Email,Dns,我在我的域中有一个简单的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); 我更改了什么设置来解决此问题?确保您可以向您的域电子邮件帐户发送邮件,然后检查您
...
$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);
我更改了什么设置来解决此问题?确保您可以向您的域电子邮件帐户发送邮件,然后检查您的代码/电子邮件,确保所有内容拼写正确。。如果这些都没有帮助的话,我不知道出了什么问题。我自己也有这个问题,最近我在重新设计一个网站的时候 我们的系统设置方式存在问题,因此系统认为,由于电子邮件来自同一个域,因此是垃圾邮件,因此阻止了它 与您的系统管理员确认您可以发送电子邮件等
或者,您必须修改标题,使其看起来像是从外部地址发送的。希望您能将其整理好。您的电子邮件是否托管在与网站不同的服务器上?如果是这种情况,PHP脚本可能会尝试在内部发送,在这种情况下,它将消失,而其他目标电子邮件将被放到internet上并正确路由
我找到的解决方案是禁用web主机上的邮件服务器,然后PHP会将邮件放到internet上以便正确发送。正如其他人所解释的,一些服务器配置为拒绝发送服务器上缺少有效电子邮件地址的邮件。检查$headers字符串是否包含定义的有效电子邮件地址“发件人”:foo@example.com“我也有同样的问题,因为我是在另一台服务器上托管电子邮件的,所以我只需禁用本地邮件服务器。我有几次遇到这个问题,罪魁祸首是如果电子邮件是在另一台服务器上托管的(例如谷歌应用程序)。当邮件发送到本地域时,它不需要在MX记录上查找,因此无法正确路由。解决这个问题的方法就是简单地让主机在服务器上禁用邮件功能 您需要在邮件功能上设置一个附加参数。在您的工作示例中,您需要在电子邮件地址前加上“-f”例如
mail($toMail,$subject,$message,$header,”-fme@mydomain.com");代码>我也有这个问题。禁用邮件服务器意味着根本没有发送电子邮件!因此,我所做的修复是从/etc/mail/local host names
文件中删除所有本地域名确保为您的域正确设置了txt
记录。这通常发生在您没有将其放入txt
记录中时:@(无)
v=spf1 include:_spf.google.com~all我认为顶部的答案似乎正确。要点是您希望在sendmail.mc中包含以下内容:
define(`MAIL_HUB`, 'example.com.')dnl
define(`LOCAL_RELAY`, 'example.com.')dnl
其中example.com是所讨论的域。我也遇到了同样的问题,并且能够用以下方法解决它。我不会在服务器上本地存储邮件,而是使用注册器上的MX记录将邮件直接发送到Google应用程序中。事实证明,MX记录也需要在Cpanel中更新,因为服务器没有从注册器获取MX记录,而是丢弃,因为没有本地MX记录或邮箱。我更新了Cpanel上的MX条目以匹配注册商的MX条目,问题立即得到解决我同意Michael Hellein的观点,根本问题可能是您的sendmail,将您的domain 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)
然后:
这是输出:
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
然后:
希望这能帮某些人省去一些麻烦。我也遇到过类似的问题,所有邮件都被完美地发送到其他域,如gmail、live、yahoo等,但所有邮件都会在本地域消失。
我有一个带有godaddy的VPS服务器,它是基于linux的运行Qmail的
我通过删除var/qmail/control/virtualdomains文件中的特定域名解决了这个问题 SMTP邮件服务器也可以是一个选项。对于使用谷歌应用程序发送电子邮件的用户,但如果您的主机位于其他提供商,则这是针对不太熟悉cPanel的用户的更详细说明
我可以解决在将电子邮件发送到我的域内的帐户时,使用PHP表单从我的域发送电子邮件的问题
i、 e.mydomain.com联系方式发送电子邮件至contact@mydomain.com.
即使我的域名有正确的MX记录,使用谷歌应用程序的域名也无法正常工作
正如Mike(和其他人)在上面指出的,问题已经解决了:将MX记录添加到cPanel中
进入cPanel
去cPanel邮件区
搜索MX条目维护,有时图标上方没有文本
选择相关域
将电子邮件路由更改为远程邮件交换器。
使用适当的优先级值添加域配置中的所有google MX记录。
您可以在此处查看记录和优先级
再次检查是否选择了远程邮件交换器。
有了这个设置,我可以使用mail PHP功能将电子邮件发送到与我的网站位于同一域内的电子邮件帐户
谷歌应用程序说明谈论MX记录
我花了8个多小时处理这个错误并解决了它,只需将标题更改为任何其他电子邮件地址,它将与PostFix、Debian7、smtp Mailjet一起工作
如果域是mydomain.com
,则在/etc/postfix/main.cf
中更改
mydestination = my-domain.com, localhost, localhost.localdomain, localhost
到
如果使用后缀,请执行以下操作:
通过ssh连接到服务器
编辑main.cf文件:
nano/etc/postfix/main.cf
用#注释以下行:
#我的目的地=…
a
# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
mydestination = my-domain.com, localhost, localhost.localdomain, localhost
mydestination = localhost, localhost.localdomain, localhost