Я написал PHP-скрипт для отправки писем.
Мой сценарий выглядит так:
$headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: abc@yahoo.com' . "\r\n"; // Email Variables $toUser = "someone@yahoo.com"; // recipient $subject = "testing"; // subject $body = "<html><body><p> Example of including an image via html \<img\> tag: <br> <img src='../images/profile.jpg'> <br> My new picture <br></p></body></html>"; // content if (mail($toUser,$subject,$body,$headers)) { echo "sent"; } else { echo "failed"; }
Ну, конечно, я использую действительный адрес электронной почты для отправителя и получателя. Я получил электронное письмо, но оно отправляется на нежелательную почту. Поэтому я пошел на поиски Google. Это из-за моей проблемы с «заголовком» скрипта? Если это не так, то что может заставить мой скрипт отправлять нежелательную почту? Любое решение?
Попробуйте следующее:
$headers ="From:<$from>\n"; $headers.="MIME-Version: 1.0\n"; $headers.="Content-type: text/html; charset=iso 8859-1"; mail($to,$subject,$body,$headers,"-f$from");
Возможно, проблема заключается в том, что yahoo использует проверку доменных ключей , что, скорее всего, не удастся для вашего приложения, учитывая, что почта фактически не поступает с серверов yahoo.
Когда у меня была аналогичная проблема, я посмотрел на заголовки и узнал, что мой хост использует SpamAssassin. Поэтому я искал «SpamAssassin score» и нашел множество информации о том, как неправильно (и, следовательно, правильно) сформировать электронное письмо.
Например: список баллов SpamAssassin
1. Проверьте содержимое почты
Как намекают другие, это, вероятно, отмечено как спам, потому что ваша почта выглядит как спам.
Я не уверен, что вы опубликовали сценарий, который вы проверили.
Если у него есть фактический почтовый ящик и заголовки, тогда запуск этого сообщения через стандартную установку SpamAssassin дает ему оценку спама 4.9
X-Spam-Status: Нет, оценка = 4.9 требуется = 5.0 тестов = BAYES_50, HTML_IMAGE_ONLY_04, HTML_MESSAGE, MIME_HTML_ONLY, NO_DNS_FOR_FROM, NO_RELAYS autolearn = no версия = 3.2.5
Поскольку тело электронной почты имеет только HTML, у него больше шансов быть обработанным подозреваемым большинством антиспамовых решений.
2. IP-адрес почтового сервера
Другим аспектом, который стоит проверить, будет IP-адрес вашего почтового сервера. Любая почта, исходящая из динамических IP-адресов, потенциально может рассматриваться как СПАМ.
3. Блок-листы
Также проверьте, указан ли ваш IP-адрес в одном из списков блоков. Для начала проверьте свой IP-адрес на странице http://www.spamhaus.org/lookup.lasso .
Используйте mxtoolbox.com для проверки IP-адресов серверов в черный список или нет. Кроме того, этот веб-сайт может помочь вам с несколькими проверками, связанными с электронной почтой.
Конечно, в спам-фильтрах есть длинный список проверок. Как уже было предложено, проверьте заголовки электронной почты для получения подробной информации о рейтинге спам-фильтров спам-сообщения.
Надеюсь, это поможет!
если домен вашего сайта – mydomain.com, то в заголовках From обязательно используйте someone@mydomain.com.
У меня была такая же проблема:
Проблема заключается в том, что когда вы указываете тип контента перед частью «From:», почта приходит как спам.
Но если вы укажете «От:» перед частью контента, это будет обычной почтой и заставит вас улыбнуться и любопытствовать.
Как сказал schnalle, одна проблема заключается в том, что сервер smtp, который вы используете для отправки электронной почты, и тот, который вы указываете как «От», отличается от того, что домен домена будет таким же, как на сервере, на котором вы работаете.
Таким образом, вы можете использовать сервер yahoo для отправки электронной почты (проверьте, разрешают ли они удаленное соединение smtp, но я предполагаю, что они это делают), подключаемые smtp, и это решит 1 проблему.
Другим является содержание html без альтернативного содержимого обычного текста, но это менее важно.
Я предлагаю вам phpMailer , бесплатный и открытый php-класс с открытым исходным кодом для отправки электронной почты, легко использовать (я использую его для отправки почты через сервер gmail)
Это основные вещи, которые вы можете попробовать.
Удалите Content-type: text/html
и добавьте $headers .= "X-Priority: 2\nX-MSmail-Priority: high";
чтобы избавиться от спама. Этот метод проверен и проверен.
**This Works Perfectly fine for me** $to="reciever@reciever.com"; $subject="This is Your Message"; $from = 'Sender <noreply@sender.com>'; $body='Hi '.$name.', <br/><br>Now You can See Yor main in inbox'; $headers = "From: " .($from) . "\r\n"; $headers .= "Reply-To: ".($from) . "\r\n"; $headers .= "Return-Path: ".($from) . "\r\n";; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "X-Mailer: PHP". phpversion() ."\r\n"; mail($to,$subject,$body,$headers);
проблема в том, что сервер, с которого вы отправляете почту, не является сервером yahoo. большинство спам-фильтров проверяют, совпадают ли они, иначе это было бы (и было бы или возможно) легко подделать отправителя. когда-либо задавались вопросом, почему вы получаете спам от bill.gates AT microsoft.com или свой собственный почтовый адрес?
У вас есть два решения:
Вы можете попробовать почтовый класс и тестовый файл, который я создал здесь. Я протестировал файлы и могу отправлять письма на мои hotmail и gmail под другим именем. Основная причина, по которой электронные письма отмечены как нежелательные, состоит в том, что структура (как заголовок, так и сообщение) выполнена неправильно. В большинстве случаев причиной является проблема с подачей строки.
Я могу использовать его для отправки почты с вложениями в Gmail. Однако вложения не работают для hotmail. Надеюсь, это поможет =)
Вы можете проверить файлы здесь .