По какой-то причине я могу получить электронную почту со следующим кодом на yahoo.com, но не hotmail.com ?? Может кто-нибудь объяснить?
$usr = "bob@hotmail.com"; $subject = "Test Email"; $from = "noreply@test.com"; ini_set("sendmail_from", $usr); $message = "<html><body style=\"font-family: Tahoma, Verdana, Arial; font-size: 12px; color: #444;\"> <h1 style=\"font-family: Tahoma, Verdana, Arial; font-size: 16px; color: #111;\">This is an email</h1> <span style=\"background: #CCC; display: block; padding: 20px;\"><br><br> <b>This is a test.</b></body></html>"; $headers = "MIME-Version: 1.0" . PHP_EOL; $headers .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL; $headers .= "From: Test.com<$from>" . PHP_EOL; mail($usr, $subject, $message, $headers); echo "<b>to:</b>$usr<br>"; echo "<b>subject:</b>$subject<br>"; echo "<b>msg:</b>$message<br>"; echo "<b>headrs:</b>$headers<br>";
Я много раз пробовал, и ничего. Но это сработало сразу с yahoo.com.
Примечание. Нет нежелательных сообщений, спама или чего-либо еще. Я не получаю письмо на моем iPhone, которое связано с этой учетной записью. 🙁
Вероятно, спам-фильтры действуют из-за некоторого заголовка, который не был удовлетворен.
Вместо написания собственной реализации почтового скрипта вы можете использовать один из тестируемых существующих, например PHPMailer .
Это может быть неверно, но не каждая почтовая система (например, google, yahoo) не поддерживает шрифты. Возможно, Hotmail пытается заблокировать шрифты из моих других проблем. Hotmail обновил свои спам-файлы, некоторые электронные письма от программного обеспечения тоже не прошли.
Раскрытие информации: Я являюсь одним из разработчиков AlphaMail
Нелегко точно сказать, в чем проблема. Отправляется ли электронная почта как спам или Hotmail отклоняет ваши сообщения? Если сообщения отклоняются, это может быть связано с тем, что Hotmail заблокировал ваш домен по какой-то причине. Если это на общем хосте, это может быть из-за спама. Если вы хотите узнать точную причину (спам-домен, отсутствует SPF, отсутствует DKIM), попробуйте вручную подключиться к Hotmail со своего сервера и отправить электронное письмо вручную . Таким образом, у вас будет ошибка в руке, а не на угадывание.
Если вы не хотите этого делать, и просто хотите, чтобы он «работал», я бы рекомендовал вам использовать службу транзакций электронной почты, такую как:
Зачем?
Если вы решите пойти с AlphaMail, вы можете использовать PHP-клиент AlphaMail .
Пример:
include_once("comfirm.alphamail.client/emailservice.class.php"); $email_service = AlphaMailEmailService::create() ->setServiceUrl("http://api.amail.io/v1") ->setApiToken("YOUR-ACCOUNT-API-TOKEN-HERE"); $person = new stdClass(); $person->userId = "1234"; $person->firstName = "John"; $person->lastName = "Doe"; $person->dateOfBirth = 1975; $response = $email_service->queue(EmailMessagePayload::create() ->setProjectId(12345) // Your AlphaMail project (determines template, options, etc) ->setSender(new EmailContact("Sender Company Name", "from@example.com")) ->setReceiver(new EmailContact("Joe Doe", "to@example.org")) ->setBodyObject($person) // Any serializable object );
Еще одно преимущество AlphaMail заключается в том, что вы можете редактировать свои шаблоны непосредственно на панели управления AlphaMail , и вы можете форматировать свои письма с использованием языка шаблонов Comlang .
<html> <body> <b>Name:</b> <# payload.firstName " " payload.lastName #><br> <b>Date of Birth:</b> <# payload.dateOfBirth #><br> <# if (payload.userId != null) { #> <a href="/sign-up">Sign Up Free!</a> <# } else { #> <a href="/login?id=<# payload.userId #>">Sign In</a> <# } #> </body> </html>