Ответ 1
Пожалуйста, попробуйте следующее:
$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");
Я написал PHP script для отправки писем.
Мой script выглядит следующим образом:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";
// Email Variables
$toUser = "[email protected]"; // 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. Это из-за моей проблемы с заголовком script? Если это не так, то что может заставить мой script отправить нежелательную почту? Любое решение?
Пожалуйста, попробуйте следующее:
$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 использует проверку domainkeys, которая, скорее всего, не удастся для вашего приложения, учитывая, что почта фактически не поступает из yahoo.
Когда у меня была аналогичная проблема, я просмотрел заголовки и узнал, что мой хост использует SpamAssassin. Поэтому я искал "SpamAssassin score" и нашел множество информации о том, как неправильно (и, следовательно, правильно) создать электронное письмо.
Например: список баллов SpamAssassin
1. Проверка содержимого почты
Как намекают другие, это, вероятно, отмечено как спам, потому что ваша почта выглядит как спам.
Я не уверен, что вы script, который вы опубликовали, является фактическим, который вы тестируете.
Если у него есть фактический почтовый ящик и заголовки, тогда запуск этого сообщения через стандартную установку SpamAssassin дает ему оценку спама 4.9
X-Spam-Status: No, score=4.9 required=5.0 tests=BAYES_50,HTML_IMAGE_ONLY_04, HTML_MESSAGE,MIME_HTML_ONLY,NO_DNS_FOR_FROM,NO_RELAYS autolearn=no version=3.2.5
Поскольку тело электронной почты имеет только HTML, у него больше шансов быть обработанным подозреваемым большинством антиспамовых решений.
2. IP-адрес почтового сервера
Другим аспектом, который стоит проверить, будет IP-адрес вашего почтового сервера. Любая почта, исходящая из динамических IP-адресов, потенциально может рассматриваться как СПАМ.
3. Блокировщики
Также проверьте, указан ли ваш IP-адрес в одном из списков блоков. Для начала проверьте свой IP-адрес http://www.spamhaus.org/lookup.lasso.
Используйте mxtoolbox.com, чтобы проверить, что IP-адреса серверов в черный список или нет. Кроме того, этот веб-сайт может помочь вам с несколькими проверками, связанными с электронной почтой.
Конечно, в фильтрах спама имеется длинный список проверок. Как уже было предложено, проверьте заголовки электронной почты для получения подробной информации о рейтинге спам-фильтров спам-сообщения.
Надеюсь, что это поможет!
если домен вашего сайта - mydomain.com, то в заголовках From обязательно используйте [email protected]
У меня была та же проблема:
Проблема заключается в том, что когда вы указываете тип контента перед частью "От:", почта приходит как спам.
Но если вы укажете "От:" перед частью контента, это будет обычная почта и заставит вас улыбнуться и любоваться.
Как сказал schnalle, одна проблема заключается в том, что сервер smtp, который вы используете для отправки электронной почты, и тот, который вы указываете как "От", отличается от того, какой домен должен быть тем же, что и сервер, на котором вы работаете.
Итак, вы можете использовать сервер yahoo для отправки электронной почты (проверьте, разрешают ли они удаленное соединение smtp, но я думаю, что они это делают), подключаясь через smtp, и это решит 1 проблему.
Другим является содержимое html без альтернативного содержимого обычного текста, но это менее важно.
Я предлагаю вам phpMailer, бесплатный php-класс с открытым исходным кодом для отправки электронной почты, использовать (я использую его событие o отправлять почту через сервер gmail)
Это основные вещи, которые вы можете попробовать.
Удалите Content-type: text/html
и добавьте $headers .= "X-Priority: 2\nX-MSmail-Priority: high";
, чтобы избавиться от спама. Этот метод проверен и проверен.
**This Works Perfectly fine for me**
$to="[email protected]";
$subject="This is Your Message";
$from = 'Sender <[email protected]>';
$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. Надеюсь, это поможет =)
Вы можете проверить файлы здесь..