Отправляю письма с помощью модуля SwiftMailer, но у некоторых пользователей письма попадают в спам, например, у тех, кто зарегистрирован на gmail.com.
Письма отсылаются так:
$mailManager = \Drupal::service('plugin.manager.mail');
....
$result = $mailManager->mail($module, $key, $to, $langcode, $params, NULL, $send);
а формируются через hook_mail
Комментарии
Письма в спаме - это только отчасти вопрос Drupal'а, а именно контента письма. Можете оттестировать и улучшить с помощью сервиса Mail Tester (бесплатно 3 письма в день).
Но по большей части это настройка DNS зоны и сервера.
и еще ip может в каком нибудь abuse висеть
Mail tester покажет.
лучше всего через gmail письма слать, железно в спам не попадет
В gmail ограничения - 500 писем для бесплатных акков и 2000 для Gmail4work в день
В яндексе тоже есть, не знаю сколько там писем, но думаю больше чем в gmail.
В любом случае лучше заплатить чем свой майл сервер дежать, гемороя много.
У Яндекса нет официальных ограничений. В частности по этому мы (drupal.ru) используем Яндекс.
Используем свой почтовый сервер. Перешел мне от настройщика, но похоже, он недоработал...
Результаты теста:
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-запись) на хосте
Это критичные пункты
Всё относится к вашим DNS записям.
На остальное можно пока забить.
mail-tester вот что пишет
DKIM мне удалось добавить, но столкнулся с такой проблемой
Куда мне копать?..
Вы добавили ключик в нужную DNS запись, и настроили подписывание писем на вашем почтовом сервере?
Судя по преведённой ошибке, с первым пунктом есть проблема.
Я настраиваю с помощью ISPManager. DNS только один. Вот как получается.
Тут у вас настройки шаблона для создания записей, а не настройки существующих записей, пока вы не поставили галочку. Также, тут нет ничего касающегося dkim. А в SPF явная ошибка.
Галочку я ставил. Она после нажатия на "ОК" исчезает.
В настройке домена сделал так:
После этого и стало ругаться на DKIM. До того, ругалось, что подписи нет. Мб DKIM-селектор не тот, но какой он должен быть тогда, я не понимаю.
Обычно там dkim или mail. Вообще, должен просто соответствовать в конфиге подписывающего софта, и в dns. Как сделано в ispmanager, я не помню, наверное она должна автоматически это разруливать сама.
Лучше покажите получившуюся DNS зону. Возможно там просто какая-то ошибка в формате записи...
Bsyomov, прошу прощения, я не очень понимаю, что нужно показать, какие настройки..
В папке exim нашел файл ключа DKIM и TXT к нему (как я предполагаю).Там содержание такое:
Нашел файл с настройками. Возможно оно.
mysite.com - вместо названия сайта, - вместо ip сайта
Вроде нашел, что требовалось. Это?
Да, у вас ошибка в TXT записи для dkim. Вместо названия записи влезло значение ключа. Имя в вашем случае должно быть dkim._domainkey А значение похоже правильное. Исправьте имя записи руками.
Это которое длинное "migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqczz0d1l4wa6hg9mrbtk9d2o0k._domainke" и т.д.
migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqczz0d1l4wa6hg9mrbtk9d2o0k заменить на dkim? Верно я понял?
Получится так:
Поменял - ничего не изменилось
Я ещё вчера не заметил, что у вас полно дублирующихся записей dkim.domain_key. Убрать, оставив одну.
И значение этой записи скопировать в сообщении полностью, чтобы можно было посмотреть на неё целиком, если не поможет...
Тщетно...
По результатам выходит так (я еще добавил запись для rDNS, удалил dkim1._domainkey.mysite.com.):
Запись имеет такой формат:
v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoFcnY9yeobYsIisZF01MGMuEfvdCXLjGoMnoy7PkvpH2+ZmuxOZpgdpmFRxajOYE5mw/kh78kwgHDTjBqg39WBbLCj4lvQ4iVD2R/Qn7qc3sDE6sO7Q6i3p5o3PVQ9EKwIA4M02vvf9ZEudd43aMqb/xwYsgUjj4sj6pme2guCwIDAQAB
Тест как будто не видит настроек вообще.
Прошел час с удаления лишних записей dkim... и их добавилось еще две штуки. Я вообще уже ничего не понимаю...
Bsyomov, помоги, пожалуйста, разобраться с ситуацией...
PTR запись меняется у хостера, а не у себя в панельке.
Откуда у вас появляются записи я не знаю. Возможно стоит обратиться в техподдержку ispsystems.
Если представленная запись в две строки действительно, то возможно, надо убрать / и перевод строки перед /Qn7 в ключике.
Если у вас свой сервер, то PTR запись должна совпадать с доменным именем, с которого идёт отправка почты и имя машины(hostname), на которой работает сайт, тоже иметь то же доменное имя, тогда письма попадать в спам не будут.
Сервер свой. Как это настроить? Хотя бы где смотреть?
Имя машины не имеет значения, на самом деле. А PTR это маленькая верхушка айсберга. Но правильно настроить надо, тем более это одна из самых простых вещей.
Вообще говоря, использование внешнего почтового сервиса серьёзно упростит вам жизнь.
Вы можете настроить конечно все проверки, в итоге, и даже правильно, но останется ещё немалая работа по обслуживанию своего почтового сервера - надо постоянно следить за попаданием в блеклисты, и вылезать из них, например.
Если у вас нет какой-то серьёзной причины держать свой почтовый сервер, лучше было бы воспользоваться каким-нибудь yandex пдд, например.
Каким то путём вы пошли странным, имхо.
smtp
Для отправки писем с сайта действительно проше использовать внешний сервис. А свой сервер нужно уметь готовить. Для этого как минимум нужно быть опытным линукс-администратором