Я использую следующий код для отправки электронной почты всем, кто регистрируется.
$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
Я бы посоветовал вам проверить настройки 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);
Надеюсь это поможет.
Ваш почтовый сервер (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, который будет задолго до ограничения поиска.