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

时间:2010-06-29 05:44:52

标签: php dns phpmailer

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

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

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

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

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

3 个答案:

答案 0 :(得分:5)

两件事:

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

sudo vim /etc/mail/sendmail.mc

添加:

FEATURE(`relay_based_on_MX')dnl

重新开始发送邮件

sudo /etc/init.d/sendmail restart