Не уверен, что кто-то еще испытал это, но у меня есть простая форма, которая отправляет электронное письмо.
<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, электронное письмо приходит. Кто-нибудь знает, как решить эту проблему?
Yahoo пометил вашу почту как спам и, вероятно, просто игнорирует ее.
Это, вероятно, верно и для hotmail.
Лучше всего найти хороший SMTP-модуль для подключения к почте (например, phpMailer) и использовать учетные данные действительной почтовой учетной записи. Таким образом, вы отправляете почту через выделенный почтовый сервер, и изменения не будут помечены как спам.
Однако обратите внимание, что когда вы отправляете множество (симулированных) писем или ваш скрипт взломан и используется для рассылки спама, изменения в том, что ваш законный почтовый сервер попадает в черный список или (если вам повезет) блокирует вашу учетную запись как опасную.
Других решений пока нет …