Я пытаюсь настроить отправку электронной почты с помощью 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
});