Предотвращение отправки отправленных писем как нежелательной почты с помощью функции php - PullRequest
14 голосов
/ 14 апреля 2009

Я написал скрипт 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. Это из-за моей проблемы скрипта "header"? Если это не так, то что может заставить мой скрипт отправлять нежелательную почту? Любое решение?

Ответы [ 14 ]

12 голосов
/ 22 августа 2012

Пожалуйста, попробуйте это:

$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");
8 голосов
/ 14 апреля 2009

Возможно, проблема в том, что Yahoo использует domainkeys подтверждение, которое, скорее всего, не сработает для вашего приложения, учитывая, что почта на самом деле не приходит с серверов Yahoo.

7 голосов
/ 14 апреля 2009

Когда у меня однажды возникла похожая проблема, я посмотрел на заголовки и обнаружил, что мой хост использует SpamAssassin. Поэтому я погуглил «счет SpamAssassin» и нашел множество информации о том, как неправильно (и, следовательно, правильно) сформировать письмо.

Например: Список очков SpamAssassin

5 голосов
/ 14 апреля 2009

1. Проверить содержимое почты

Как уже намекали другие, он, вероятно, помечен как спам, потому что ваша почта выглядит как спам.

Я не уверен, что опубликованный вами сценарий является тем, который вы тестируете.

Если у него есть фактическое тело письма и заголовки, то при запуске этого сообщения через стандартную установку 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.

3 голосов
/ 07 ноября 2014
                   **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);
3 голосов
/ 16 июля 2013

Используйте mxtoolbox.com , чтобы проверить IP серверов в черном списке или нет. Также этот сайт может помочь вам с парой проверок, связанных с электронной почтой.

Конечно, в спам-фильтрах работает длинный список проверок. Как уже предлагалось, проверьте заголовки электронной почты для получения подробной информации о рейтинге спам-фильтров в спам-письме.

Надеюсь, это поможет!

2 голосов
/ 04 марта 2013

У меня была такая же проблема:

Проблема в том, что при указании типа содержимого перед частью «От:» письмо приходит как спам.

Но если вы укажете "От:" перед частью контента, то оно приходит как обычное письмо и вызывает у вас улыбку и любопытство.

2 голосов
/ 23 июля 2010

если доменом вашего сайта является mydomain.com, то в заголовках From обязательно используйте somebody@mydomain.com

1 голос
/ 28 марта 2013

Удалите Content-type: text/html и добавьте $headers .= "X-Priority: 2\nX-MSmail-Priority: high";, чтобы избавиться от спама. Этот метод был опробован и испытан.

1 голос
/ 05 июня 2009
  1. На вашем сервере попытайтесь отсортировать запись SPF (Sender Policy Framework, Google for SPF).
  2. Убедитесь, что вы отправляете свои электронные письма от существующей учетной записи на вашем сервере / домене.
  3. Убедитесь, что в заголовке есть адрес для ответа.

Это основные вещи, которые вы можете попробовать.

...