Почему сообщения электронной почты, отправленные из моего 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>';
};
5 ответов
Предполагается, что почтовые серверы рассчитывают оценку спама для каждого из ваших сообщений на основе анализа текста и множества других вещей, о которых они никому не расскажут - +3 за то, что в заголовке нет слов, +2 за встроенные ссылки и т. д. и т. д. Скорее всего, обычная оценка для одного из ваших сгенерированных писем (без ссылок) достаточно высока, но все еще достаточно низка для того, чтобы почта могла пройти.
Некоторые антиспам-решения достаточно хороши, чтобы подсчитывать оценку спама в заголовках сообщений - ищите что-то вроде "X-Spam-Score". Если вы сможете выяснить, какова оценка полученного сообщения, это скажет вам, насколько близко это было к тому, чтобы быть помеченным как спам (порог спама обычно составляет около 12 или около того, но у них всех есть свои собственные системы), Я подозреваю, что оценка за чистое сообщение будет довольно высокой, и добавление ссылки является лишь последней каплей.
Еще одна вещь, на которую следует обратить внимание: если вы генерируете почту из скрипта, убедитесь, что он заполняет все соответствующие заголовки, так как отсутствующие из них значительно увеличат ваш счет спама. Журналы из SMTP-диалога между сервером, отправляющим почту, и всем, на что он ретранслируется, также могут быть полезны.
Вы должны убедиться, что ваш почтовый сервер (скорее всего, тот же компьютер, на котором запущен ваш 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-SPAM. Самая важная часть этого - прямой способ отписаться от ваших рассылок. Если вы делаете это трудно для людей, то ваши пользователи с большей вероятностью нажмут большую кнопку спама в своем почтовом клиенте, которая будет возвращена обратно на почтовый хост и будет работать на вашем сервере.
Каждый сайт электронной почты будет применять свои собственные правила для обнаружения спама. Вы не найдете идеальный способ не быть классифицированным как спам. На первый взгляд! в теме и содержании исключительно в HTML хорошие показатели спама...
Отправить письмо на check-auth@verifier.port25.com
и вы получите автоматический отчет с анализом того, как он выглядит и какова его спамность. Это может дать вам некоторые идеи.
Около 18 месяцев назад у нас были проблемы с доставкой наших электронных писем на адреса Yahoo, потому что ссылка содержала домен, который был недавно зарегистрирован.
Мы определили это, проверив отклоненные электронные письма. Сама Yahoo сообщала, что "ваша электронная почта была отложена", но несколько других почтовых серверов дали подсказку в своем сообщении об ошибке для отказа в доставке. Смена домена на более старый, более устоявшийся домен устранила проблему.
Также рассмотрите слова в ссылке (например, произнесите что-то вроде СКАЧАТЬ БЕСПЛАТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СЕЙЧАС вместо Загрузите версию программного обеспечения 1.0) и доменное имя в самой ссылке.
Из кода мало что можно сделать. Хотя вы можете использовать что-то вроде DKIM, нет никаких гарантий, что получатели будут использовать это. Лично я бы сосредоточился на том, чтобы ваша электронная почта выглядела не так, как нежелательный спам, а скорее как нечто "официальное", о котором действительно просил пользователь. Не могли бы вы отредактировать свое сообщение, добавив в него фактическое электронное письмо, отправленное вашей системой?