3

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

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
4

3 回答 3

6

两件事情:

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

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

于 2010-06-29T05:58:55.307 回答
0

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

sudo vim /etc/mail/sendmail.mc

添加这个:

FEATURE(`relay_based_on_MX')dnl

重启发送邮件

sudo /etc/init.d/sendmail restart
于 2014-03-28T23:37:36.100 回答
0

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

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

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

于 2010-06-29T05:55:46.917 回答