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

Dav*_*ave 3 php dns phpmailer

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

mail($emailto, $subject, $body, $headers);
mail('askme@mysite.com', $subject.' / '.$emailto, $body, $headers);
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

phi*_*reo 6

两件事情:

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

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

  • 尝试cPanel - > MX Entry - > Email Routing - > Remote Mail Exchanger.不要忘记upvote有用的答案,并标记一个正确的:) (2认同)