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

83

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

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

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

kcode
источник
Шаг за шагом контрольный список , а также рекомендации по устранению неполадок можно найти в хорошем ответ на аналогичный вопрос о superuser.com .
MattBianco

Ответы:

83

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

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

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

Убедитесь, что адрес для ответов на ваши электронные письма являются действительными, существующие адреса. Используйте полное, настоящее имя адресата в поле «Кому», а не только адрес электронной почты (например "John Doe" <john.doe@example.com>) и отслеживайте свои учетные записи, такие как abuse@example.com и postmaster@example.com .

splattne
источник
И используйте составные / альтернативные версии вашего html-письма, которое содержит только текст. Это означает, что у сканера спама будет больше полезных вещей при классификации.
Мэтт
22

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


источник
4
Это очень интересно Я ничего не знал об этих петлях обратной связи. Все ли провайдеры предлагают такую ​​программу?
Код от
1
Не все провайдеры, нет. Но большинство крупных, в том числе Yahoo и AOL и другие. Все известные мне петли обратной связи о жалобах требуют, чтобы сообщения отправлялись с домена, который аутентифицирован DKIM или DomainKeys. Я считаю, что некоторые также требуют SPF, но реже.
15

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

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

  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. Они помогают с доставкой, но не являются обязательными (не большинством почтовых серверов).

Крис С
источник
11

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

Чтобы быть немного менее негативным и более полезным ... Поскольку у вас есть конкретные проблемы с конкретным клиентом, может быть, программа может вам сказать. Я не знаю конкретно о 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]

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

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

Дэвид Спиллетт
источник
9

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

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

Барт Сильверстрим
источник
Хм. Я никогда не видел, чтобы спаммер использовал эту тактику раньше ...
Эрни
Обычно прямой текст с одной или двумя законными ссылками (не так уж и много), как правило, проходит ... иначе я не смогу отправить по электронной почте ссылки себе или другим людям, если они не будут помечены как спам. Это все равно что сказать, что вы никогда не видели, чтобы спаммеры отправляли мгновенные сообщения с «грязными словами», чтобы побудить людей отвечать. Легальный трафик делает это тоже. Ключ не в том, чтобы быть «слишком спамовым» ... имя пользователя, например, bevans, вероятно, не так подозрительно, как «hottienakedchick69», даже если содержание такое же, вы понимаете, о чем я?
Барт Сильверстрим
7

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

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

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

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

    Когда ваш код PHP отправляет электронные письма, это часто происходит с помощью знаменитой функции PHP 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 для отправки почты как contact@example.com ( см. Скриншот здесь ), используя доверенного SMTP-провайдера Sendgrid . Если я не добавлю их include:, Gmail не будет разрешено отправлять электронную почту @example.com.

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

    • apt-get install opendkim opendkim-tools

    • Создайте ключи (вы также можете сгенерировать ключи и соответствующую запись TXT в DNS с помощью 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:8891@localhost" # 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 auth-results@verifier.port25.com(этот очень полезный инструмент доступен в Port25 Solutions):

    $emailfrom = "Example <contact@example.com>";
    $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: example@gmail.com\n";
    mail("check-auth@verifier.port25.com", "Hello", "Hello!", $headers);
    

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

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

    Сервис mail-tester.com также полезен.

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

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


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

(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.
Basj
источник
6

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

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

Крис К
источник
Это обходной путь. Правильным решением было бы исправить неисправную систему и убедиться, что у вас по крайней мере есть правильная запись SPF в DNS.
Джон Гарденье
3
На самом деле, если провайдер, на котором работает ваш почтовый сервер, будет помечен как спам, удачи в этом. Мы были в Rackspace в то время. Использование Google в качестве SMTP помогло, так как Google удостоверился, что это не занесено в черный список.
Крис К
1

На E-mail опубликовано новое руководство

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

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

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

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

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