Письма Drupal8 попадают в спам. Как бороться?

Главные вкладки

Аватар пользователя pingvin156 pingvin156 15 декабря 2017 в 19:46

Отправляю письма с помощью модуля SwiftMailer, но у некоторых пользователей письма попадают в спам, например, у тех, кто зарегистрирован на gmail.com.

Письма отсылаются так:

$mailManager = \Drupal::service('plugin.manager.mail');
....
$result = $mailManager->mail($module, $key, $to, $langcode, $params, NULL, $send);

а формируются через hook_mail

Комментарии

Аватар пользователя mbaev mbaev 15 декабря 2017 в 21:40
1

Письма в спаме - это только отчасти вопрос Drupal'а, а именно контента письма. Можете оттестировать и улучшить с помощью сервиса Mail Tester (бесплатно 3 письма в день).
Но по большей части это настройка DNS зоны и сервера.

Аватар пользователя Olegars Olegars 15 декабря 2017 в 22:44

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

Аватар пользователя pingvin156 pingvin156 15 декабря 2017 в 22:54

Используем свой почтовый сервер. Перешел мне от настройщика, но похоже, он недоработал...

Результаты теста:

MIME_HTML_ONLY Message only has text/html MIME parts
Вам нужно добавить текстовую версию письма (text/plain)

RDNS_NONE Delivered to internal network by a host with no rDNS
Возможно это ложное срабатывание, но пожалуйста, проверьте обратную зону DNS

[SPF] не позволяет Вашему серверу использовать

[Sender ID] не позволяет Вашему серверу использовать

Ваше сообщение не подписано DKIM

Мы не нашли почтовый сервер (A-запись) на хосте

Аватар пользователя mbaev mbaev 15 декабря 2017 в 23:01
1

Это критичные пункты

pingvin156 wrote:

[SPF] не позволяет Вашему серверу использовать
[Sender ID] не позволяет Вашему серверу использовать
Ваше сообщение не подписано DKIM
Мы не нашли почтовый сервер (A-запись) на хосте

Всё относится к вашим DNS записям.
На остальное можно пока забить.

Аватар пользователя pingvin156 pingvin156 16 декабря 2017 в 23:35

mail-tester вот что пишет

У вас нет записи DMARC, пожалуйста, добавьте TXT запись на ваш домен _dmarc.mysite.com со следующим значением:
v=DMARC1; p=none

DKIM мне удалось добавить, но столкнулся с такой проблемой

Ваша DKIM подпись не действительна
DomainKeys Identified Mail (DKIM) представляет собой метод создания соответствия доменного имени в сообщении электронной почты, что позволяет человеку, роли или организации требовать определенную ответственность за это сообщение.
Подпись DKIM Вашего письма:

v=1;
a=rsa-sha256;
q=dns/txt;
c=relaxed/relaxed;
d=mysite.com;
s=dkim;
h=Content-Transfer-Encoding:Content-Type:MIME-Version:To:From:Subject:Date:Message-ID:Sender:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;
bh=IHvEREZh5+65s9WlWHQ5Oh+vpCudqrTUny0d3p6NZII=;
b=VAIxJry6EE8xYfuFxI7Fr85+CdTx2gDBs5YuXsVKoWuraf2WlCZnoL1WSxzA2CCybYp2NQlIevPQf5EBMUWOCr0NO27h2XFNSCU8HB9GsR4KriRvxQTFeDKUmq5E0cDjxTHHycl0rYfxPgh8TUCfuHud6Jei7R4/6OIWyBglktk=;

Нам не удалось получить Ваш открытый ключ.

Куда мне копать?..

Аватар пользователя bsyomov bsyomov 17 декабря 2017 в 14:07
1

Вы добавили ключик в нужную DNS запись, и настроили подписывание писем на вашем почтовом сервере?
Судя по преведённой ошибке, с первым пунктом есть проблема.

Аватар пользователя bsyomov bsyomov 17 декабря 2017 в 17:58
1

Тут у вас настройки шаблона для создания записей, а не настройки существующих записей, пока вы не поставили галочку. Также, тут нет ничего касающегося dkim. А в SPF явная ошибка.

Аватар пользователя pingvin156 pingvin156 17 декабря 2017 в 19:15

Галочку я ставил. Она после нажатия на "ОК" исчезает.

В настройке домена сделал так:
настройка домена
После этого и стало ругаться на DKIM. До того, ругалось, что подписи нет. Мб DKIM-селектор не тот, но какой он должен быть тогда, я не понимаю.

Аватар пользователя bsyomov bsyomov 17 декабря 2017 в 22:24

Обычно там dkim или mail. Вообще, должен просто соответствовать в конфиге подписывающего софта, и в dns. Как сделано в ispmanager, я не помню, наверное она должна автоматически это разруливать сама.

Лучше покажите получившуюся DNS зону. Возможно там просто какая-то ошибка в формате записи...

Аватар пользователя pingvin156 pingvin156 17 декабря 2017 в 22:57

Bsyomov, прошу прощения, я не очень понимаю, что нужно показать, какие настройки..

В папке exim нашел файл ключа DKIM и TXT к нему (как я предполагаю).Там содержание такое:

dkim._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA1GNADCBiQKBgQDoFcnY9yeobYsIisZF01MGMuEfvdCXLjGoMnoy7PkvpH2+ZmuxOZpgdpmFRxajOYE4mw/kh74kwgHDTjBqg39WBbLCj4lvQ4iVD2R/Qn7qc3sDE6sO7Q673p5o3PVQ9EKwIA4M02vvf9ZEudd43aMqb/xwYsgUjj4sj4pme2guCwIDAQAB" ) ;

Аватар пользователя pingvin156 pingvin156 17 декабря 2017 в 23:13

Нашел файл с настройками. Возможно оно.
mysite.com - вместо названия сайта, - вместо ip сайта

$TTL 3600
mysite.com. IN SOA sal.uapeer.eu. root.example.com. (2017091339 3600 3600 604800 86400)
mysite.com. IN NS ns1.example.com.
mysite.com. IN NS ns2.example.com.
mysite.com. 3600 IN TXT "v=spf1 a mx ip4: ~all"
mysite.com. IN MX 10 mail
mysite.com. IN MX 20 mail
mysite.com. IN A
www IN A
ftp IN A
mail 3600 IN A
smtp 3600 IN A
pop 3600 IN A
dkim._domainkey 3600 IN TXT "v=DKIM1\; k=rsa\; s=email\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqnkn7oodAk2H3HhBWpuR7x5XlD11TDzF0YT6w2/gMkvzrm0nzkgLVlrx6uGi1u9QVCblDM+aJ7dZc6xw7lH33jzcntnDI+z1isbYEfwl0EMsG0j64Eyei5OpGKV6qCEAtodSaAv22G4siKhqS3bodQthktEfh2jAsJwK21QIDAQAB"
migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqczz01l4wa6hg9mrbtk9d2o0k._domainkey 3600 IN TXT "v=DKIM1\; k=rsa\; s=email\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2q7z22PUd1G8T/8zPuFz7U1KIxOkzGO2DuSHC44fxhfyp8G2MYl/axnBxlpDePt8jKZKCAz6CU0FlGN6N8YrAqg+RYuDSSPbMzTF7hhLW3daiK+ao5fV06D8YaB7aYDQqS6SK4HXJMA3RI3IHHJOdpcEUEDKNXzrjBVzjZQH1owIDAQAB"
dkim._domainkey 3600 IN TXT "v=DKIM1\; k=rsa\; s=email\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4k8kNHhUC2QyqHSfwspgGKr4GoN1bbqKZfl9A2Koj38pYNRa6UO8sEpkWIGrHWONGMJpLezWsSPtPI3kYKU1vuwS2/jpgEiE8KNAP86p69q6RPhHSNnp7MaxE1qGkbGOEMS2S7/mQlXm/TgOjpT++xeVz2dCq7sktE91/+DRIQIDAQAB"
dkim1._domainkey 3600 IN TXT "v=DKIM1\; k=rsa\; s=email\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDJFRxHJ8hmZab7A6o8/nDywo/z7CRlKG6+Zt8Wf7Jb4qS+WByoDJcg0v/Tqd1TOGB4pcCUG6S5S+gs4lMYzSFI3u1OcGz6lMzxglXx4Cul1m16iY0+p3ohlHm3GNRjnFGWVj02wEsxHkAD5o8x/eV9guvQzfY8aSjdZ3vQIDAQAB"
_dmarc 3600 IN TXT "v=DMARC1\; p=none\; aspf=r\; sp=none"
dkim._domainkey 3600 IN TXT "v=DKIM1\; k=rsa\; s=email\; p=MIGfMA0GCSqGSIb3DQBQUAA4GNADCBiQKBgQDoFcnY9yeobYsIisZF01MGMuEvdCXLjGoMnoy7PkvpH2+ZmuxOZpgdpmFRxajOYE5mw/kh78kwgHDTjBqg39WBbLCj4lvQ4iVD2R/Qn7qc3sDE6sO7Q6i3p5o3PVQ9EKwIA4M02vvfZEudd43aMqb/xwYsgUj4sj6pme2guCwIDAQB"

Аватар пользователя bsyomov bsyomov 17 декабря 2017 в 23:43
1

Да, у вас ошибка в TXT записи для dkim. Вместо названия записи влезло значение ключа. Имя в вашем случае должно быть dkim._domainkey А значение похоже правильное. Исправьте имя записи руками.

Аватар пользователя pingvin156 pingvin156 17 декабря 2017 в 23:56

Это которое длинное "migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqczz0d1l4wa6hg9mrbtk9d2o0k._domainke" и т.д.
migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqczz0d1l4wa6hg9mrbtk9d2o0k заменить на dkim? Верно я понял?
Получится так:

dkim._domainkey.mysite.com

Аватар пользователя bsyomov bsyomov 18 декабря 2017 в 14:08

Я ещё вчера не заметил, что у вас полно дублирующихся записей dkim.domain_key. Убрать, оставив одну.
И значение этой записи скопировать в сообщении полностью, чтобы можно было посмотреть на неё целиком, если не поможет...

Аватар пользователя pingvin156 pingvin156 18 декабря 2017 в 18:27

Тщетно...
По результатам выходит так (я еще добавил запись для rDNS, удалил dkim1._domainkey.mysite.com.):
днс

Запись имеет такой формат:
v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoFcnY9yeobYsIisZF01MGMuEfvdCXLjGoMnoy7PkvpH2+ZmuxOZpgdpmFRxajOYE5mw/kh78kwgHDTjBqg39WBbLCj4lvQ4iVD2R/Qn7qc3sDE6sO7Q6i3p5o3PVQ9EKwIA4M02vvf9ZEudd43aMqb/xwYsgUjj4sj6pme2guCwIDAQAB

Тест как будто не видит настроек вообще.
тест

Аватар пользователя bsyomov bsyomov 19 декабря 2017 в 16:17
1

PTR запись меняется у хостера, а не у себя в панельке.
Откуда у вас появляются записи я не знаю. Возможно стоит обратиться в техподдержку ispsystems.
Если представленная запись в две строки действительно, то возможно, надо убрать / и перевод строки перед /Qn7 в ключике.

Аватар пользователя any_user any_user 16 декабря 2017 в 12:10
2

Если у вас свой сервер, то PTR запись должна совпадать с доменным именем, с которого идёт отправка почты и имя машины(hostname), на которой работает сайт, тоже иметь то же доменное имя, тогда письма попадать в спам не будут.

Аватар пользователя bsyomov bsyomov 17 декабря 2017 в 14:04

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

Аватар пользователя bsyomov bsyomov 17 декабря 2017 в 14:13

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

Аватар пользователя ivnish ivnish 18 декабря 2017 в 10:15

Для отправки писем с сайта действительно проше использовать внешний сервис. А свой сервер нужно уметь готовить. Для этого как минимум нужно быть опытным линукс-администратором