Письма, не полученные на Gmail ID электронной почты: [email protected] через PHP Mail Function

Я использую следующий код для отправки электронной почты всем, кто регистрируется.

$recmail = '[email protected]'; // address you want the form mailed to
$sub = "Atlas Corps Questionnaire"; //subject of email that is sent
$mess = "Hello, Please fill a questionnaire at following link. ";

$headers = "From: Atlas Corps Family Tree  < [email protected] > \n" .
"MIME-Version: 1.0\n" .
"Content-type: text/html; charset=iso-8859-1";

mail($recmail,$sub,$mess,$headers);

Мой [email protected] является действующей учетной записью Gmail.
Но я не получаю никаких писем здесь.
Я проверил все мои настройки Gmail правильно.
Пересылка и фильтрация не применяются.

где, как моя другая учетная запись Gmail: [email protected]
Получает все письма через этот сайт.

Пожалуйста, помогите, так как все мои клиенты будут иметь @ atlascorps.org учетная запись электронной почты в Gmail.

В журналах электронной почты сервера есть следующее сообщение

Return-path: <>
Envelope-to: [email protected]
Delivery-date: Tue, 23 Sep 2014 08:56:11 -0700
Received: from mailnull by p3plcpnl0096.prod.phx3.secureserver.net with local (Exim 4.82)
id 1XWSRn-0003Fc-2A
for [email protected]; Tue, 23 Sep 2014 08:56:11 -0700
X-Failed-Recipients: [email protected]
Auto-Submitted: auto-replied
From: Mail Delivery System <[email protected]>
To: [email protected]
Subject: Mail delivery failed: returning message to sender
Message-Id: <[email protected]>
Date: Tue, 23 Sep 2014 08:56:11 -0700

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:

[email protected] This is a copy of the message, including all the headers. ------

Return-path: <[email protected]>
Received: from atlascorpsadmin by p3plcpnl0096.prod.phx3.secureserver.net with local (Exim 4.82)
(envelope-from <[email protected]>)
id 1XWSRm-0003FX-Vo
for [email protected]; Tue, 23 Sep 2014 08:56:11 -0700
To: [email protected]
Subject: Atlas Corps Questionnaire
X-PHP-Script: atlascorps.org/globe/send_link.php for 122.176.7.34
X-PHP-Originating-Script: 209330:send_link.php
From: Atlas Corps Family Tree  < [email protected] >
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
Message-Id: <[email protected]>

Hello

0

Решение

Я бы посоветовал вам проверить настройки DNS и, в основном, запись SPF, которая у вас есть. Если вы идете к инструменту Kitterman для Проверки SPF, вы увидите, что ваш SPF запись кажется недействительной:

Input accepted, querying now...
evaluating v=spf1 a mx ptr include:secureserver.net ~all ...
Results - PermError SPF Permanent Error: Too many DNS lookups

Я думаю, что Google иногда не может решить все secureserver.net записи, поэтому он возвращает некоторые сообщения. Вместо того, чтобы иметь include:secureserver.net попробуйте удалить его и установить MX запись, которая указывает на ваш сервер. SPF запись разрешена всем MX записи для отправки писем, так что должно работать нормально.

Кроме того, я бы предложил использовать почтовую библиотеку, такую ​​как SwiftMailer, который гораздо проще поддерживать и отлаживать, чем php по умолчанию mailer функция. Вот фрагмент кода, который может дать вам преимущество:

require_once '/path/to/swift-mailer/lib/swift_init.php';

// Create the message
// http://swiftmailer.org/docs/messages.html
$message = Swift_Message::newInstance();
$message->setFrom('[email protected]', 'Atlas Corps Family Tree');
$message->setTo('[email protected]');
$message->setContentType('text/html');
$message->setCharset('iso-8850-1');
$message->setSubject('Atlas Corps Questionnaire');
$message->setBody('<html><head></head><body>Hello, Please fill a questionnaire at following <a href="http://domain.com/link.php?time='.time().'">link</a>.</body></html>');// Create the Transport
// http://swiftmailer.org/docs/sending.html#the-smtp-transport
$transport = Swift_SmtpTransport::newInstance('localhost', 25);

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
$mailer->send($message);

Надеюсь это поможет.

1

Другие решения

Ваш почтовый сервер (exim) будет иметь файлы журнала, вероятно, в /var/log/mail/log или поблизости, и это будет более подробно о том, почему ваши доставки не удается. К сожалению, опубликованный вами отскок не содержит никакой полезной информации.

Расширяя ответ tftd:

RFC4408 накладывает ограничение из 10 поисков. Там хороший анализ подсчета поиска SPF Вот. Пункт убийцы в вашем SPF mx потому что это перечисляет 5 почтовых серверов. SPF-запись secureserver.net содержит только предложения ip4, поэтому никаких дополнительных поисков не будет. В SPF вы действительно не нуждаетесь ptr (и у вас нет записи DNS для этого в любом случае), так что это сохранит поиск, и так как ваш a запись представляет собой только один IP, было бы неплохо сначала перечислить это явно. Я бы посоветовал вам изменить свой SPF на это, чтобы минимизировать количество просмотров:

v=spf1 ip4:192.186.207.194 include:secureserver.net mx a ~all

Я покинул a там на случай, если вы измените свой IP и забудете обновить эту запись …

Все это говорит о том, что это не обязательно означает, что ваш SPF предотвращает доставку, поскольку почтовый сервер прекратит проверять проверку записей SPF, когда обнаружит совпадение, и если он совпадет с одним из ваших MX, который будет задолго до ограничения поиска.

1

По вопросам рекламы [email protected]