Функция почты PHP не отправляет электронную почту на действительный аккаунт в том же домене - PullRequest
3 голосов
/ 29 июня 2010

Я использую функцию mail следующим образом:

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

Ответы [ 3 ]

5 голосов
/ 29 июня 2010

Две вещи:

  1. Вы должны проверить, является ли $emailto пустым, прежде чем вызывать функцию mail.Вы не хотите, чтобы PHP пытался отправить почту на пустой адрес.

  2. Ваша проблема с askme@mysite.com не доставлена, вероятно, является результатом хоста вашего локального сайта (mysite.com) пытается доставить почту на «локальный» адрес - поскольку он находится в одном домене, хотя в действительности эта почта существует в Службах Google.Ваш почтовый сервер (например, postfix или sendmail) должен иметь настройку для отключения этого «ярлыка».

0 голосов
/ 29 марта 2014

Если вы используете sendmail , перейдите в файл конфигурации и, используя MX записи , укажите Google Apps , как я, сделайте следующее:

sudo vim /etc/mail/sendmail.mc

добавить это:

FEATURE(`relay_based_on_MX')dnl

перезапустить отправку почты

sudo /etc/init.d/sendmail restart
0 голосов
/ 29 июня 2010

Можете ли вы отправить электронное письмо на этот адрес с помощью обычного почтового клиента (например, такого как hotmail / gmail или Outlook / Thunderbird)?

Если вы не можете - ваша учетная запись электронной почты настроена неправильно.

Если вы можете - ваша учетная запись электронной почты настроена так, чтобы игнорировать ваш домен или что-то подобное (возможно, спам-фильтр, притворяющийся, что пользователь не существует?).

...