Функция php mail не отправляет электронную почту, когда From address — Yahoo

Не уверен, что кто-то еще испытал это, но у меня есть простая форма, которая отправляет электронное письмо.

 <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<input type="text" name="phone" id="phone" value="<?php echo $phone; ?>" />
<textarea name="message" rows="20" cols="20" id="message"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>

Когда подано, у меня есть следующее:

 if ($_POST) {
$email_to = "[email protected]";
$subject = "Contact Form";
$message = "Phone: {$phone}\r\nMessage: {$msg}";
$headers = "From: [email protected]" . "\r\n";
mail($email_to,$subject,$message, $headers);

}

Когда форма отправлена, функция mail возвращает true, но электронное письмо не отправляется, однако, когда я изменяю электронную почту FROM на что-либо еще за пределами yahoo, например что-то@gmail.com, электронное письмо приходит. Кто-нибудь знает, как решить эту проблему?

1

Решение

Yahoo пометил вашу почту как спам и, вероятно, просто игнорирует ее.
Это, вероятно, верно и для hotmail.

Лучше всего найти хороший SMTP-модуль для подключения к почте (например, phpMailer) и использовать учетные данные действительной почтовой учетной записи. Таким образом, вы отправляете почту через выделенный почтовый сервер, и изменения не будут помечены как спам.

Однако обратите внимание, что когда вы отправляете множество (симулированных) писем или ваш скрипт взломан и используется для рассылки спама, изменения в том, что ваш законный почтовый сервер попадает в черный список или (если вам повезет) блокирует вашу учетную запись как опасную.

0

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

Других решений пока нет …

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