it-swarm-ru.tech

Как отправлять электронные письма и не допускать их отнесения к спаму?

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

Иногда я хочу отправлять рассылку своим клиентам. Проблема в том, что некоторые письма попадают как спам. В основном с помощью Outlook на клиенте (даже в моем собственном Outlook 2007).

Теперь я хочу знать, что нужно сделать, чтобы создать "хорошие" электронные письма. Я знаю об обратном поиске и т.д., Но (например), как насчет ссылки отказа от подписки с уникальным идентификатором? Это увеличивает рейтинг спама?

84
kcode

Убедитесь, что ваши электронные письма не похожи на обычные спам-сообщения: не вставляйте только большое изображение; убедитесь, что набор символов установлен правильно; не вставляйте ссылки "только IP-адрес". Напишите ваше сообщение так же, как вы написали бы обычное письмо. Сделайте так, чтобы было действительно легко отписаться или отказаться. В противном случае ваши пользователи откажутся от подписки, нажав кнопку "спам", и это повлияет на вашу репутацию.

С технической стороны: если вы можете выбрать свой SMTP-сервер, убедитесь, что это "чистый" SMTP-сервер. IP-адреса SMTP-серверов со спамом часто помещаются в черный список других поставщиков. Если вы не знаете свои SMTP-серверы заранее, рекомендуется установить в приложении параметры конфигурации для управления размерами пакетов и задержкой между партиями. Некоторые почтовые серверы не принимают большие пакеты отправки или непрерывную активность.

Используйте методы аутентификации электронной почты, такие как SPF и Ключи домена , чтобы доказать, что ваши электронные письма и ваше доменное имя принадлежат друг другу. Побочным эффектом Nice является то, что вы помогаете предотвратить подделку вашего почтового домена. Также проверьте ваш обратный DNS , чтобы убедиться, что IP-адрес вашего почтового сервера указывает на доменное имя, которое вы используете для отправки почты.

Убедитесь, что адрес для ответов на ваши электронные письма являются действительными, существующие адреса. Используйте полное, настоящее имя адресата в поле "Кому", а не только адрес электронной почты (например, "John Doe" <[email protected]>) и отслеживайте свои учетные записи о злоупотреблениях, например [email protected] и [email protected] .

83
splattne

Автоматически отписываться от получателей вашего сообщения, чьи адреса электронной почты отклоняются, и устанавливать петли обратной связи по жалобам с крупными почтовыми провайдерами и автоматически отписываться от получателей, которые сообщают о вашем сообщении как спам/нежелательная почта. Это будет иметь большое значение для улучшения вашей репутации и доставки.

22
wg

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

Эти минимумы по существу необходимы в эти дни:

  1. Убедитесь, что у вас есть прямой и обратный DNS настроен правильно. Почтовый сервер должен идентифицировать себя в обмене HELO/EHLO, это имя должно соответствовать IP-адресу сервера. Точно так же обратный поиск этого IP должен вернуть имя.

  2. Убедитесь, что ваш сервер действительно отправляет имя хоста в этом рукопожатии. Ваш сервер не должен отправлять IP-адрес.

  3. Убедитесь, что ваш IP-адрес отсутствует в DNSRBL (черных списках). Если это так, позаботьтесь об этом.

  4. Проверьте репутацию своего IP с помощью более популярных сервисов репутации (SenderScore сейчас очень популярен, но со временем это может не сохраниться). Эти службы, как правило, содержат рекомендации по улучшению вашей репутации, но они не являются такими же, как RBL.

  5. Не фальсифицируйте заголовки, не врите заголовки, и убедитесь, что вы включаете минимальные заголовки в сообщения (требуются Date и ​​From, должен быть Subject, Sender, Reply-To и ​​To/Cc/Bcc [в зависимости от обстоятельств]). Это одна из моих самых любимых публикаций с действительными информационными бюллетенями, которые я хочу получать в конечном итоге в нежелательной, потому что они имитируют заголовок Outlook Express, пропускают дату или что-то подобное.

При желании вы должны рассмотреть возможность настройки SPF, DKIM и DMARC. Они помогают с доставкой, но не являются обязательными (не большинством почтовых серверов).

15
Chris S

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

Чтобы быть немного менее негативным и более полезным ... Поскольку у вас есть конкретные проблемы с конкретным клиентом, может быть, программа может вам сказать. Я не знаю конкретно об Outlook, поскольку сам его нигде не использую, но многие почтовые фильтры внедряют заголовки в сообщения, чтобы перечислить, какие фильтры были использованы, каков был результат и какой вес был присвоен этому фильтру. Поэтому, если вы посмотрите на полный источник сообщений, которые они перенесли в нежелательные папки, вы можете найти полезные подсказки. Например, фильтры на основе SpamAssassin вводят заголовки следующей формы:

X-Spam-Flag: YES
X-Spam-Score: 13.371
X-Spam-Level: *************
X-Spam-Status: Yes, score=13.371 tagged_above=-10 required=5.4
    tests=[BAYES_99=3.5, FB_GET_MEDS=0.803, RCVD_IN_SORBS_WEB=0.619,
    RCVD_IN_XBL=3.033, RDNS_NONE=0.1, URIBL_AB_SURBL=1.86,
    URIBL_BLACK=1.955, URIBL_JP_SURBL=1.501]

(этот пример был извлечен из подлинного спам-сообщения в моей куче мусора)

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

11
David Spillett

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

Одна вещь, которую вы, возможно, захотите рассмотреть, - это отправлять своим клиентам электронное письмо по электронной почте для каждого информационного бюллетеня, которое на самом деле содержит краткое описание/приветствие, за которым следует "нажмите здесь, чтобы просмотреть наш последний информационный бюллетень!" сообщение; Таким образом, вы можете разместить свое сообщение на веб-сервере, вы уменьшаете размер электронных писем (и загружаете их на свой почтовый сервер), а в качестве бонуса вы можете проверить журналы на своем веб-сервере, чтобы узнать, сколько клиентов на самом деле чтение ваших сообщений против их удаления.

9
Bart Silverstrim

Подробное решение, позволяющее избежать того, чтобы электронные письма определялись как спам и/или не приходили к получателям

Пример ситуации: у вас есть сервер, на котором работает PHP веб-сайт для example.com), который должен отправлять электронные письма . И вы замечаете, что ваши электронные письма не всегда доставляются (Большая проблема, если вы владелец магазина, а клиенты не получают письма после покупки!).

Если вы выполните все следующие шаги, это следует решить 99,9% проблем. (Сначала я подумал, что можно сделать только несколько из них, и пропустить DKIM, например, но в конце концов все они были необходимы для решения всех проблем, которые у меня были).

  1. Прежде всего, кто отправляет электронные письма?

    Когда ваш PHP код отправляет электронные письма), это часто происходит с помощью знаменитой PHP function mail(...). Но что делает эта функция под капотом? Давайте запустим страницу test.php, содержащую <?php echo ini_get('sendmail_path'); ?>. Например, вы получите: /usr/sbin/sendmail -t -i. Хорошие новости, теперь мы знаем, какая программа действительно обрабатывает электронные письма!
    Теперь хитрая информация: имя sendmail может быть различные программы . Даже если вы видите sendmail на предыдущем шаге, вы можете иметь sendmail или postfix или exim , или qmail и т.д. установлены. Давайте сделаем dpkg -S /usr/sbin/sendmail. Ответ postfix: /usr/sbin/sendmail, хорошо, это значит у нас установлено postfix.

  2. Просмотрите файл журнала /var/mail/www-data, чтобы узнать, какие электронные письма были отправлены неправильно и почему. Это может быть полезно для следующих шагов.

  3. Как упоминалось в блог Джеффа Этвуда , пришло время взглянуть на обратные записи PTR. (Более подробная информация будет добавлена ​​здесь).

  4. Добавьте следующую строку в файл конфигурации postfix /etc/postfix/main.cf:

    inet_protocols=ipv4
    

    Затем перезапустите postfix с помощью service restart postfix. Почему? Потому что у меня были такие проблемы, когда получатель gmail:

    Наша система обнаружила, что это сообщение 550-5.7.1 не соответствует правилам отправки IPv6, касающимся записей PTR и аутентификации 550-5.7.1. Пожалуйста, просмотрите 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error для получения более 550 5.7.1 информации.

    самое простое решение было тогда переключить postfix только на ipv4, таким образом, это шаг 4 (что может быть ненужным для вас?).

  5. SPF DNS записи . Чтобы доказать, что вам разрешено отправлять электронные письма от @example.com, вы можете добавить запись SPF в записи DNS домена example.com. Я где-то нашел, что The DNS record type 99 (SPF) has been deprecated, поэтому вместо этого мы используем TXT запись. Давайте добавим это как TXT DNS запись) (см. также примечание 1):

    v=spf1 a mx include:_spf.google.com include:sendgrid.net ~all
    

    Почему это включает? Потому что мой сервер будет не единственным, кто отправляет электронные письма с @ example.com! Я настроил Gmail на Отправить почту как [email protected] ( см. Скриншот здесь ), используя доверенного поставщика SMTP Sendgrid . Если я не добавлю эти include:, Gmail не будет разрешено отправлять электронную почту с @example.com.

  6. [~ # ~] dkim [~ # ~] цифровая подпись. Как уже упоминалось здесь , цель DKIM состоит в том, чтобы гарантировать, что содержимое почты не было изменено во время передачи. Вот процесс установки в Ubuntu (полезное руководство здесь тоже):

    • apt-get install opendkim opendkim-tools

    • Создайте ключи (вы также можете сгенерировать ключи и соответствующую DNS TXT запись с http://dkimcore.org/tools/ ):

      mkdir /etc/opendkim
      cd /etc/opendkim
      opendkim-genkey -t -s mail -d example.com
      
    • Давайте поместим это в /etc/opendkim.conf:

      Syslog                 yes
      Domain                 *
      KeyFile                /etc/opendkim/mail.private
      Selector               mail
      AutoRestart            yes
      Background             yes
      Canonicalization       relaxed/relaxed
      DNSTimeout             5
      Mode                   sv
      SubDomains             no
      

      это в /etc/default/opendkim:

      SOCKET="inet:[email protected]" # Ubuntu default - listen on loopback on port 8891
      

      и, наконец, добавьте это в конец файла конфигурации postfix /etc/postfix/main.cf:

      # DKIM
      milter_default_action = accept
      milter_protocol = 2
      smtpd_milters = inet:localhost:8891
      non_smtpd_milters = inet:localhost:8891
      
    • Теперь давайте добавим открытый ключ (находится в /etc/opendkim/mail.txt) в записи DNS вашего домена:

      mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=OqYHd...waPaQAX"
      

      Вот как это выглядит с моим регистратором Namelynx:

    • Последний шаг для DKIM: перезапустите почтовые службы с помощью service restart opendkim ; service restart postfix.

  7. Проверьте, все ли работает. Самый простой способ - отправить электронное письмо через PHP на [email protected] (этот очень полезный инструмент доступен в Port25 Solutions) :

    $emailfrom = "Example <[email protected]>";
    $headers  = "MIME-Version: 1.0 \n";
    $headers .= "Content-Transfer-Encoding: 8bit \n";
    $headers .= "Content-type: text/plain; charset=utf-8\n";
    $headers .= "Reply-To: " . $emailfrom . "\n";
    $headers .= "From: " . $emailfrom . "\n";
    $headers .= "Bcc: [email protected]\n";
    mail("[email protected]", "Hello", "Hello!", $headers);
    

    Затем посмотрите ответ этого инструмента, он должен выглядеть так:

    ==========================================================
    Summary of Results
    ==========================================================
    SPF check:          pass
    DKIM check:         pass
    SpamAssassin check: ham
    

    Служба mail-tester.com также полезна.

  8. (Необязательно) Попробуйте postmaster.google.com. Я использовал это, но я не помню, помогло это или нет.

  9. Если это все еще не работает , решение может состоять в том, чтобы передать электронную почту с профессиональным решением, чтобы избежать дней и ночей (неудачной) отладки. Здесь хорошая статья об этом. Вот цитата: "Отправка писем из вашего приложения может быть ***. В половине случаев сообщения, отправляемые с вашего собственного сервера, просто сбрасываются в папку нежелательной почты получателя." что я печально обнаружил, правда, после нескольких недель настройки.


Дополнительные замечания:

(1)

-all : Fail: All mail servers not listed in the SPF record are explicitly not authorized to send mail using the sender’s domain.
~all : Soft Fail: All mail servers not listed in the SPF record are not authorized to send mail using the sender’s domain, but the owner of the domain is unwilling to make a strong assertion to that effect.
?all : Neutral: The domain controller cannot or does not want to assert whether or not all mail servers not listed in the SPF record are authorized to send mail using the sender’s domain.
+all : Pass: All mail servers are authorized to send mail on behalf of the sender’s domain.
7
Basj

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

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

6
Chris K

Существует новое руководство, которое было опубликовано в почтовом ящике

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

От настройки DNS, настройки аутентификации, настройки мониторинга репутации, снижения показателя отказов, тестирования содержимого электронной почты и т.д.

ZeroBounce.NET освещает все вопросы

https://www.zerobounce.net/guide-to-improve-inbox-and-delivery.html

1
Henry