Назад | Перейти на главную страницу

Почему сообщения электронной почты, отправленные из моего PHP-приложения, рассматриваются как спам?

У меня есть забавная штука. Когда я отправляю электронное письмо пользователям Yahoo, Gmail или Hotmail. Если я добавлю ссылку, она будет рассматриваться как спам. Но если я удалил ссылку, она станет «входящей почтой», а не спамом. Странно, да ??

Имеет ли какое-то отношение к моему почтовому серверу ?? Как сделать так, чтобы моя электронная почта не рассматривалась как спам? Мне нужна ссылка в моем электронном письме :)

PHP код:

// Send Email to the user
$headers =  'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: user@domain.com' . "\r\n";

// Email Variables

$toUser  = 'touser@other.com'; // recipient
$subject = "Subject HERE!!"; // subject
$body    = '<div style="font-family:Arial; color:#333;">
                Some content here ...
        <a href="www.google.com" target="_blank"> Link here</a> 
        </div>';

if(mail($toUser,$subject,$body,$headers)){
    echo "Email SENT" . '<br>';
} else {
    echo "Email cannot sent" . '<br>';
};

Вам необходимо убедиться, что ваш почтовый сервер (скорее всего, тот же компьютер, на котором запущен ваш php-код) правильно настроен для законной отправки почты. Вам нужно убедиться в том, что некоторые вещи сделаны правильно, чтобы всякая почта, пересылаемая с этого компьютера, не была сразу помечена как спам.

Во-первых, ваш почтовый сервер ДОЛЖЕН сказать HELO с его каноническим именем хоста, это то же значение, что и hostname Команда возвращается при запуске в командной строке. Под postfix это ценность myhostname переменная в /etc/postfix/main.cf.

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

[dave@odessa ~]$ host odessa.cheney.net
odessa.cheney.net has address 64.85.168.249
[dave@odessa ~]$ host 64.85.168.249
249.168.85.64.in-addr.arpa domain name pointer odessa.cheney.net.

В-третьих, убедитесь, что ваш почтовый сервер не работает как открытый ретранслятор. Если ваш почтовый сервер настроен на ретрансляцию почты с других хостов, вы должны быть очень осторожны, чтобы убедиться, что эти хосты сами не являются открытыми ретрансляторами или должным образом защищены от приема сообщений от неаутентифицированных хостов. Существует множество сайтов, которые могут проверить для вас, http://www.checkor.com/ например.

В-четвертых, посмотрите на содержание вашего сообщения. Из образца, который вы разместили выше, похоже, что вы отправляете небольшой фрагмент HTML, который, скорее всего, будет набором сигналов тревоги с фильтрами спама (посмотрите на состав среднего фрагмента спама). Вы всегда должны использовать библиотеку электронной почты для составления письма, а если вы отправляете почту в формате HTML, вы должны включать text/plain вариант.

Наконец, на крупных сайтах часть нашей почты будет помечена как спам, это просто закон средних чисел. Вы несете ответственность за соблюдение соответствующих правил для автоматической или массовой рассылки электронной почты, например CAN-СПАМ. Самая важная часть этого - прямой способ для людей отказаться от подписки на ваши списки рассылки. Если вы усложняете это для людей, то ваши пользователи с большей вероятностью попадут в спам в их почтовом клиенте, которая будет отправлена ​​обратно на почтовый хост и будет работать против вашего сервера.

Предположительно, почтовые серверы рассчитывают оценку спама для каждого вашего сообщения на основе анализа текста и множества других вещей, о которых они никому не расскажут - +3 за отсутствие слов в заголовке, +2 за встроенные ссылки и т. д. и т. д. Скорее всего, обычная оценка одного из ваших сгенерированных писем (без ссылок) довольно высока, но все же достаточно низка для того, чтобы письмо могло пройти.

Некоторые антиспамовые решения достаточно хороши, чтобы указывать оценку спама в заголовках сообщений - поищите там что-то вроде «X-Spam-Score». Если вы можете узнать, какова оценка пройденного сообщения, это покажет вам, насколько оно было близко к тому, чтобы быть помеченным как спам (порог спама обычно составляет около 12 или около того, но у всех есть свои собственные системы) . Я подозреваю, что оценка за чистое сообщение будет довольно высокой, и добавление ссылки - лишь последняя капля.

Еще одна вещь, на которую следует обратить внимание, - это то, что если вы генерируете почту из сценария, убедитесь, что он заполняет все соответствующие заголовки, так как отсутствующие заголовки значительно увеличат ваш счет за спам. Также были бы полезны журналы SMTP-разговора между сервером, отправляющим почту, и тем, на что он ретранслирует.

Каждый почтовый сайт будет применять свои собственные правила обнаружения спама. Вы не найдете идеального способа не попасть в спам. На первый взгляд! в теме и содержании полностью в HTML - хорошие индикаторы спама ...

Отправить электронное письмо по адресу check-auth@verifier.port25.com и вы получите в ответ автоматический отчет с анализом того, как он выглядит и каков спам. Это может дать вам несколько идей.

Вы мало что можете сделать с помощью кода. Хотя вы можете использовать что-то вроде DKIM, нет никаких гарантий, что получатели будут его использовать. Лично я бы сфокусировался на том, чтобы ваша электронная почта выглядела не столько спамом, как спамом «запустил и забыл», а больше похожей на что-то «официальное», о котором действительно просил пользователь. Не могли бы вы отредактировать свое сообщение, включив в него реальное электронное письмо, отправленное вашей системой?

Около 18 месяцев назад у нас были проблемы с доставкой наших электронных писем на адреса Yahoo, потому что ссылка содержала недавно зарегистрированный домен.

Мы определили это, проверив отклоненные электронные письма. Сам Yahoo сообщал, что «ваше электронное письмо было задержано», но пара других почтовых серверов указала в своем сообщении об ошибке для отказа в доставке. Смена домена обратно на более старый, более устоявшийся домен устранила проблему.

Также обратите внимание на слова в ссылке (например, говоря что-то вроде ЗАГРУЗИТЬ БЕСПЛАТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕЙЧАС вместо Скачать версию ПО 1.0) и доменное имя в самой ссылке.