我的域上有一个简单的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);
我改变什么设置来解决这个问题?
对于使用Google Apps for email的人,但将您的主机放在其他提供商中,这是针对不熟悉cPanel的人员的更详细说明.
我可以解决使用PHP表单从我的域发送电子邮件的问题,将电子邮件发送到我的域内的帐户.
即mydomain.com联系表格发送电子邮件至contact@mydomain.com.即使我的域名使用Google Apps的域名具有正确的MX记录,上述操作也无效.
正如迈克在上面提到的那样(以及其他人),问题得到了解决:将MX记录添加到cPanel中.
进入cPanel
转到cPanel邮件部分
搜索MX Entry Maintenance,有时图标上方没有文字.
选择相关域
将电子邮件路由更改为远程邮件交换器.
使用适当的优先级值添加域配置中的所有Google MX记录.您可以在此处查看记录和优先级 https://support.google.com/a/answer/174125
仔细检查远程邮件交换器.被选中.
通过此设置,我能够使用邮件PHP功能将电子邮件发送到与我的网站位于同一域内的电子邮件帐户.
有关MX记录的Google App说明 https://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是相关域名.
如果您使用postfix,请执行以下操作:
通过ssh连接到您的服务器.
编辑main.cf文件:
nano /etc/postfix/main.cf
用#评论以下行:
# mydestination = ...
在main.cf文档的末尾添加:
mydestination =
通过运行以下命令重新加载后缀配置:
/etc/init.d/postfix reload
您需要在邮件功能上设置其他参数.在您的工作示例中,您需要在电子邮件地址前加上'-f',例如
mail($toMail, $subject, $message, $header, "-fme@mydomain.com");