PHP 邮件功能不会将电子邮件发送到同一域中的有效帐户

标签 php dns phpmailer

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

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

第一个是为最终用户准备的。第二份给我,用于记录。

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

  1. 指定电子邮件地址后,最终用户实际上可以毫无问题地收到电子邮件
  2. 但是,无论哪种情况,都没有电子邮件发送到 askme@example.com - 我也检查了垃圾邮件文件夹。

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

  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)应该有禁用此“快捷方式”的设置。

关于PHP 邮件功能不会将电子邮件发送到同一域中的有效帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138140/

相关文章:

php - 使用 PHPMailer 发送纯文本电子邮件

Java Servlet 过滤器在 Ruby [on Rails] 和 PHP 中等效吗?

php - 替换数组值以增加

javascript - 在模态弹出窗口上运行 MYSQL 查询

error-handling - PHPMailer 不提供 ErrorInfo

smtp - phpmailer 和 gmail SMTP 错误 : Failed to connect to server: Network is unreachable (101) SMTP connect() failed

php - 图片上传,ajax,php,mysql

php - 相同的服务器,不同的域需要不同的 session

mysql - 重定向 FTP 请求

azure - 如何提供 Windows Azure 托管站点的自定义域名