У меня есть 2 сайта, на которых почта отправляется на две учетные записи gmail. Я использую PHP для обработки почты, но почта не отображается в gmail (не в спаме / нежелательной, она просто не отображается). Если я переключу PHP для отправки на мою личную учетную запись hotmail, появится почта. То же самое для личной учетной записи электронной почты через моего интернет-провайдера.
Почта, используемая для показа на этих двух сумасшедших gmail-счетах, любые идеи, почему они просто остановились?
Возможно, вы не установили правильные данные заголовка, и эти электронные письма заблокированы даже до того, как они попали в папку спама.
Попробуйте добавить что-то вроде этого:
$headers = 'From: your@email.com' . "\r\n" . 'Reply-To: some@email.com';
Это четвертый параметр функции mail ().
В прошлом я столкнулся с проблемами, когда некоторые бесплатные поставщики электронной почты не получали никаких писем с моих серверов.
Я обнаружил, что некоторые вещи могут быть виновниками, вместо того, чтобы помещать правильные заголовки в фактическое сообщение:
Скорее всего, PHP отправляет письмо просто отлично, но серверы Google отклоняют любые сообщения, поступающие с вашего сервера.
Вы можете проверить это, быстро выполнив следующие действия:
mail -s Test you@gmail.com < /dev/null
Если ваш сервер в порядке, вы получите сообщение в своем gmail, если вы этого не сделаете, PHP не проблема.
Я нашел, что надлежащая запись SPF для вашего домена действительно помогает
Похоже, что это проблема конфигурации сервера, а не проблема с 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>