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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное решение, чтобы электронные письма не определялись как спам и / или не доходили до получателей

Пример ситуации: у вас есть сервер, на котором запущен веб-сайт 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 на предыдущем шаге у вас может быть Отправить почту или постфикс или 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
    

    Затем перезапустите постфикс с помощью 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. Давайте добавим это как запись DNS TXT (см. также примечание 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

    • Создайте ключи (вы также можете сгенерировать ключи и соответствующую запись 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:8891@localhost" # Ubuntu default - listen on loopback on port 8891
      

      и, наконец, добавьте это в конец файла конфигурации постфикса /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. Если это все еще не работает, решением может быть передача электронной почты на аутсорсинг с помощью профессионального решения, чтобы избежать дней и ночей (безуспешной) отладки. Вот хорошая статья об этом. Вот цитата: «Отправка электронных писем из вашего приложения может дерьмо. В половине случаев сообщения, отправленные с вашего собственного сервера, просто сбрасываются в папку нежелательной почты получателя». что я, к сожалению, обнаружил, что это правда, после нескольких недель настройки.


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

(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.

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

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

В почтовом ящике для входящих сообщений опубликовано новое руководство.

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

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

Полное освещение всего на ZeroBounce.NET

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