繁体   English   中英

PHP邮件功能不会向同一域上的有效帐户发送电子邮件

[英]PHP mail function does not send email to valid account on same domain

我正在使用邮件功能如下:

mail($emailto, $subject, $body, $headers);
mail('askme@mysite.com', $subject.' / '.$emailto, $body, $headers);

第一个是针对最终用户的。 第二份副本是我保存记录的。

Soometimes最终用户指定他们的电子邮件地址,其他时候是空白。

  1. 指定电子邮件地址后,最终用户实际收到电子邮件时没有任何问题
  2. 但是,在EITHER情况下,没有电子邮件发送到askme@example.com - 我也检查了垃圾邮件文件夹。

在我的/ mail / new文件夹中,我看到许多FILES创建类似于下面的内容。 错误是错误的,因为askme@mysite.com是一个有效的电子邮件地址(使用谷歌设置域名)。

  Return-path: <> Envelope-to: myuserid@myhostingprovider.com Delivery-date: Mon, 28 Jun 2010 12:37:28 -0400 Received: from mailnull by myhostingprovider.com with local (Exim 4.69) id UNIQUEIDZ-7x for myuserid@myhostingprovider.com; Mon, 28 Jun 2010 12:37:28 -0400 X-Failed-Recipients: askme@mysite.com Auto-Submitted: auto-replied From: Mail Delivery System <Mailer-Daemon@myhostingprovider.com> To: myuserid@myhostingprovider.com Subject: Mail delivery failed: returning message to sender Message-Id: <EUNIQUEIDZ-7x@myhostingprovider.com> Date: Mon, 28 Jun 2010 12:37:28 -0400 This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: askme@mysite.com No Such User Here ------ This is a copy of the message, including all the headers. ------ Return-path: <myuserid@myhostingprovider.com> Received: from nobody by myhostingprovider.com with local (Exim 4.69) (envelope-from <myuserid@myhostingprovider.com>) id UNIQUEIDV-6b for askme@mysite.com; Mon, 28 Jun 2010 12:37:28 -0400 To: askme@mysite.com Subject: mysite.com: SUBJECT / enduser@gmail.com X-PHP-Script: www.mysite.com/mysitescript.php for IPADDRESS MIME-Version: 1.0 Content-type: text/html; charset=UTF-8 From: mysite.com Service <askme@mysite.com> Message-Id: <EUNIQUEIDV-6b@myhostingprovider.com> Date: Mon, 28 Jun 2010 12:37:28 -0400 

两件事情:

  1. 在实际调用mail功能之前,您应该检查$emailto是否为空。 您不希望PHP尝试将邮件发送到空白地址。

  2. 你的问题是askme@mysite.com没有交付可能是因为你的本地网站主机( mysite.com )试图将邮件发送到它认为是“本地”的地址 - 因为它在同一个域上,而实际上是电子邮件存在于Google Apps中。 您的邮件服务器(如postfix或sendmail)应该有一个设置来禁用此“快捷方式”。

如果您使用的是sendmail,请转到配置文件并使用MX记录像我一样指向Google Apps ,请执行以下操作:

sudo vim /etc/mail/sendmail.mc

添加这个:

FEATURE(`relay_based_on_MX')dnl

重启发送邮件

sudo /etc/init.d/sendmail restart

您是否可以使用普通的电子邮件客户端(如hotmail / gmail或Outlook / Thunderbird之类的网站)向该地址发送电子邮件?

如果您不能 - 您的电子邮件帐户设置不正确。

如果可以 - 您的电子邮件帐户被设置为忽略您的域或类似的东西(可能是垃圾邮件过滤器假装用户不存在?)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM