Рейтинг:1

Письма, отправленные с постфиксом, рассматриваются как спам, а иногда вообще не доставляются.

флаг na

Я пытаюсь настроить отправку электронной почты с помощью SMTP на своем VPS под управлением Ubuntu 18.04. Я использую постфикс, nodemailer.

Когда я отправляю с адреса @mydomain.com на учетную запись gmail, оно застревает в папке спама gmail.Я получил 6,8 балла за www.mail-tester.com, с этими вычетами:

-1,274 RDNS_NONE Доставлено во внутреннюю сеть хостом без rDNS Это может означать, что у вас не настроен rDNS для вашего имени хоста или rDNS не соответствует вашему отправляющему IP-адресу.

-0,896 SPF_HELO_SOFTFAIL SPF: HELO не соответствует записи SPF (softfail) софтфейл

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

Я думаю, что моя запись TXT верна:

"v=spf1 ip4:[removed-server-ip] include:_spf.mail.hostinger.com ~все"

/etc/postfix/main.cf:

# Смотрите /usr/share/postfix/main.cf.dist для более полной версии с комментариями


# Специально для Debian: указание имени файла приведет к первому
# строка этого файла, которая будет использоваться в качестве имени. Дебиан по умолчанию
# это /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
биф = нет

# добавление .domain - это работа MUA.
append_dot_mydomain = нет

# Раскомментируйте следующую строку, чтобы сгенерировать предупреждение об "отложенной почте"
#delay_warning_time = 4 часа

readme_directory = нет

# См. http://www.postfix.org/COMPATIBILITY_README.html -- по умолчанию 2 на
# свежие установки.
уровень_совместимости = 2

# TLS-параметры
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=да
smtpd_tls_session_cache_database = btree:${каталог_данных}/smtpd_scache
smtp_tls_session_cache_database = btree:${каталог_данных}/smtp_scache

# См. /usr/share/doc/postfix/TLS_README.gz в пакете postfix-doc для
# информация о включении SSL в smtp-клиенте.

smtpd_relay_restrictions = Permit_MyNetworks Permit_Sasl_Authenticated defer_unauth_destination
myhostname = [удаленное-домен-имя].com
alias_maps = хеш:/и т.д./псевдонимы
alias_database = хэш:/и т.д./псевдонимы
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost.[удаленное-доменное-имя].com, [удаленное-доменное-имя].com, [удаленное-доменное-имя]$
ретранслятор =
мои сети = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
почтовый ящик_размер_лимит = 0
получатель_разделитель = +
inet_interfaces = только для обратной связи
inet_protocols = все

policyd-spf_time_limit = 3600
smtpd_recipient_restrictions =
   разрешение_mynetworks,
   разрешение_sasl_аутентифицированный,
   reject_unauth_destination,
   check_policy_service unix: частный/policyd-SPF

метод nodemailer:

  "использовать строго";
  const nodemailer = require("nodemailer");

  пусть транспортер = nodemailer.createTransport({
    отправка почты: правда,
    новая строка: 'unix',
    путь: '/usr/sbin/sendmail',
    безопасный: правда,
  })

  let info = await transporter.sendMail({
    from: '"[removed-domain-name].com" <no-reply@[removed-domain-name].com>', // адрес отправителя
    to: req.body.to, // список получателей
    subject: "Здравствуйте", // Строка темы
    text: req.body.message, // обычное текстовое тело
    html: req.body.message, // тело html
  });
флаг in
Отвечает ли это на ваш вопрос? [Борьба со спамом — что я могу сделать как администратор электронной почты, владелец домена или пользователь?](https://serverfault.com/questions/419407/fighting-spam-what-can-i-do-as-an- владелец-или-пользователь-администратора-домена-электронной почты)
Joseph avatar
флаг na
@GeraldSchneider, может быть, но, честно говоря, я немного не понимаю, что делать дальше, чтобы исправить проблемы. Я пробовал: https://serverfault.com/a/1064820 для проблемы с rDNS (не сработало), и я не знаю, что еще я могу сделать. проблема с SPF (поскольку я думал, что уже разобрался с записью TXT).Я читаю там ответы, но для меня нет ничего очевидного, что я должен попробовать, у вас есть какие-нибудь идеи?
Рейтинг:1
флаг za
  1. Настройте обратный DNS. Добавьте запись PTR, связывающую ваш IP-адрес с именем вашего сервера MX.

  2. Убедитесь, что для myhostname в main.cf указано имя вашего MX-сервера. Это, вероятно, является причиной несоответствия вашего HELO.

  3. Вы можете установить SPF на «v=spf1 a mx include:_spf.mail.hostinger.com ~all», чтобы автоматически принимать ваши MX в качестве отправителей, но с ip все должно быть в порядке.

  4. Зарегистрируйте свой домен в Google, чтобы улучшить доставку: https://support.google.com/a/answer/9649569?hl=ru

  5. Обязательно используйте DKIM:

опендким

Установите опендайм.

Настроить

Отредактируйте /etc/opendkim.conf:

  • св режим для подписи и проверки входящих писем (вам может не понадобиться режим проверки)
  • Адрес отчета [email protected]
  • KeyTable, SigningTable: файлы, связывающие ключи с записями DNS.
  • InternalHosts: файл, содержащий список доверенных хостов.

Создать ключи

mkdir /etc/opendkim/keys/example.com/
компакт-диск /etc/opendkim/keys/example.com/
opendkim-genkey -s почта -d example.com
chown opendkim:почта opendkim.*

Параметр называется селектором, является доменом.

Редактировать /etc/opendkim/SigningTable и добавьте пару домен/селектор:

*@example.com mail._domainkey.example.com.

Редактировать /etc/opendkim/ключевая таблица и добавьте пару selector/key :

mail._domainkey.example.com example.com:mail:/etc/opendkim/keys/example.com/mail.private

Редактировать /etc/opendkim/TrustedHosts и вставить

*.example.com
[ваша локальная сеть]

DNS

Вам нужно добавить свой открытый ключ в свой DNS. Вы найдете ключ в /etc/opendkim/keys/xxx.yy/mail.txt

Создайте поле TXT:

mail._domainkey.example.com 10800 TXT "v=DKIM1; k=rsa; p=very_long_key"

постфикс

Вы должны сообщить postfix об opendkim, чтобы заставить его подписывать ключи.

Получите метод подключения для opendkim в его конфигурации. Должно быть что-то вроде инет:8891@локальный хости добавьте его в качестве фильтра в main.cf :

smtpd_milters = инет:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = принять

Завершить

Перезапустите (в конечном итоге включите) opendkim, а затем postfix. Проверьте ключ в вашем DNS с помощью opendkim-testkey -d example.com -s почта -vvv

Проверьте с помощью mail-tester.com. Проверьте в /var/log/maillog, что каждое отправленное письмо добавляет строку Добавлено поле DKIM-Signature

Joseph avatar
флаг na
Спасибо @Hexdump, я следовал вашим инструкциям, но на последнем шаге я получаю: ``opendkim-testkey -d [mydomain].com -s mail -vvv opendkim-testkey: использование файла конфигурации по умолчанию /etc/opendkim.conf opendkim-testkey: проверка ключа 'mail._domainkey.[mydomain].com' opendkim-testkey: запись 'mail._domainkey.[mydomain].com' не найдена``
Joseph avatar
флаг na
Спасибо @Hexdump, теперь у меня идеальные 10/10 на мейл-тестере

Ответить или комментировать

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