PHP-почта не появляется в Gmail, но появляется в Hotmail и других сторонних / ISP-аккаунтах

У меня есть 2 сайта, на которых почта отправляется на две учетные записи gmail. Я использую PHP для обработки почты, но почта не отображается в gmail (не в спаме / нежелательной, она просто не отображается). Если я переключу PHP для отправки на мою личную учетную запись hotmail, появится почта. То же самое для личной учетной записи электронной почты через моего интернет-провайдера.

Почта, используемая для показа на этих двух сумасшедших gmail-счетах, любые идеи, почему они просто остановились?

Solutions Collecting From Web of "PHP-почта не появляется в Gmail, но появляется в Hotmail и других сторонних / ISP-аккаунтах"

Возможно, вы не установили правильные данные заголовка, и эти электронные письма заблокированы даже до того, как они попали в папку спама.

Попробуйте добавить что-то вроде этого:

$headers = 'From: your@email.com' . "\r\n" . 'Reply-To: some@email.com'; 

Это четвертый параметр функции mail ().

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

Я обнаружил, что некоторые вещи могут быть виновниками, вместо того, чтобы помещать правильные заголовки в фактическое сообщение:

  • Убедитесь, что ваш сервер настроен на обратный поиск DNS
  • Убедитесь, что вы не используете открытое реле smtp
  • Убедитесь, что ваш сервер не завершался ни в одном черном списке электронной почты (если у вас было открытое реле, вы, вероятно, попали в черный список.

Скорее всего, PHP отправляет письмо просто отлично, но серверы Google отклоняют любые сообщения, поступающие с вашего сервера.

Вы можете проверить это, быстро выполнив следующие действия:

 mail -s Test you@gmail.com < /dev/null 

Если ваш сервер в порядке, вы получите сообщение в своем gmail, если вы этого не сделаете, PHP не проблема.

Я нашел, что надлежащая запись SPF для вашего домена действительно помогает

http://www.openspf.org/SPF_Record_Syntax

Похоже, что это проблема конфигурации сервера, а не проблема с PHP.

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

Я не думаю, что Google использует сторонние черные списки, но они заботятся о конфигурации сервера (правильно ли он идентифицирует себя, имеют соответствующие записи SPF и RDNS, правильно реагируют на команды). Вы можете попробовать несколько тестовых сервисов, подобных тому или иному .

Я вижу, что уже слишком поздно, но … следующий код работает для gmail.

 <html> Mail Responder:<br><br> <?php $to = $_REQUEST['MyEmail'] ; $subject = $_REQUEST['subject'] ; $greeting = $_REQUEST['greeting'] ; $realname = $_REQUEST['realname'] ; $HisEmail = $_REQUEST['HisEmail'] ; $message = $_REQUEST['message'] ; $headers = 'From: '.$HisEmail; //$headers = 'From: $HisEmail' . "\r\n" . //'Reply-To: some@email.com'; $send = mail($to, $subject, $greeting."\n"."\n".$realname."\n"."\n".$HisEmail."\n"."\n".$message, $headers ); if ($send) $mailReturns = "Mail sent successfully."; else $mailReturns = "Mail sent failed."; ?> <?php echo $mailReturns; ?> </html>