Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';t向我自己域中的地址发送电子邮件_Php_Email_Dns - Fatal编程技术网

Php can';t向我自己域中的地址发送电子邮件

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); 我更改了什么设置来解决此问题?确保您可以向您的域电子邮件帐户发送邮件,然后检查您

我在我的域中有一个简单的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); 

我更改了什么设置来解决此问题?

确保您可以向您的域电子邮件帐户发送邮件,然后检查您的代码/电子邮件,确保所有内容拼写正确。。如果这些都没有帮助的话,我不知道出了什么问题。

我自己也有这个问题,最近我在重新设计一个网站的时候

我们的系统设置方式存在问题,因此系统认为,由于电子邮件来自同一个域,因此是垃圾邮件,因此阻止了它

与您的系统管理员确认您可以发送电子邮件等


或者,您必须修改标题,使其看起来像是从外部地址发送的。希望您能将其整理好。

您的电子邮件是否托管在与网站不同的服务器上?如果是这种情况,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