postfix не отправляет почту через Amazon SES - Хост или имя домена не найдены

Я пытался настроить свой экземпляр Amazon EC2 (под управлением Ubuntu 20.04) для отправки почты через Amazon SES. У меня есть различные настройки, которые я позаимствовал из более ранней (успешной) конфигурации, чтобы предотвратить любую локальную доставку почты на этот компьютер и убедиться, что вся исходящая почта приходит с одного адреса отправителя. По какой-то причине postfix отказывается отправлять почту. Ошибки всегда выглядят следующим образом (я отредактировал идентифицируемые домены и т. Д.):

May 11 21:24:43 ip-172-30-2-193 postfix/pickup[3918]: 256D03EEA0: uid=1001 from=<noreply@mydomain.com>
May 11 21:24:43 ip-172-30-2-193 postfix/cleanup[3928]: 256D03EEA0: message-id=<20200511212443.256D03EEA0@www.mydomain.com>
May 11 21:24:43 ip-172-30-2-193 postfix/qmgr[3919]: 256D03EEA0: from=<noreply@mydomain.com>, size=723, nrcpt=1 (queue active)
May 11 21:24:43 ip-172-30-2-193 postfix/smtp[3921]: 256D03EEA0: to=<example-email@gmail.com>, relay=none, delay=14, delays=14/0/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=email-smtp.us-east-1.amazonaws.com type=A: Host not found, try again)

Вот мой postconf:

command_directory = /usr/sbin
compatibility_level = 2
daemon_directory = /usr/lib/postfix/sbin
data_directory = /var/lib/postfix
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = loopback-only
inet_protocols = ipv4
local_transport = error:local delivery is disabled
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, envelope_recipient, header_sender, header_recipient
masquerade_domains = $mydomain
mydestination =
mydomain = mydomain.com
myhostname = www.mydomain.com
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
readme_directory = /usr/share/doc/postfix
relayhost = [email-smtp.us-east-1.amazonaws.com]:587
sample_directory = /usr/share/doc/postfix/examples
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = secure
smtpd_banner = $myhostname ESMTP $mail_name
unknown_local_recipient_reject_code = 550

Файл / etc / postfix / sasl_passwd является корневым: root и 640 и выглядит так: это:

# NOTE: these are credentials for IAM User [REDACTED]
[email-smtp.us-east-1.amazonaws.com]:587 XXXXXXXXXXXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

где XXX ... и YYY ... - это учетные данные, которые в настоящее время работают со старым сервером.

Я видел множество сообщений на этом форуме, посвященных этому типу ошибок, но предлагаемые ими решения не решают мою проблему:

  • проблема с сетевым подключением - я могу без проблем использовать telnet с этого сервера для отправки электронной почты -smtp.us-east-1.amazonaws.com на портах 25 и 587
  • , пытающихся использовать транспорт ipv6 - я специально установил inet_protocols на ipv4 .
  • наличие / отсутствие квадратных скобок вокруг email-smtp.us-east-1.amazonaws.com - Я пробовал устанавливать relayhost с квадратными скобками и без них и всегда старался повторно хешировать файл sasl_passwd.Если я заключу скобки, появится сообщение об ошибке type = A: Host not found, попробуйте еще раз . Если я сниму скобки, будет написано type = MX: Host not found, попробуйте еще раз . Это единственная разница.
  • DNS не разрешается и / или resolv.conf не читается - Команда dig email-smtp.us-east-1.amazonaws.com всегда дает около полдюжины адресов AWS. Файл /etc/resolv.conf доступен для чтения всем. Я нигде не пробовал копировать или создавать символические ссылки на этот файл.
  • неверный узел ретрансляции или отсутствующие учетные данные - вся почта должна маршрутизироваться через Amazon SES, что у меня установлено для relayhost, а файл / etc / postfix / sasl_passwd принадлежит / читается root и учетные данные, которые он содержит, соответствуют relayhost в main.cf, а также работают на другом, более старом сервере.
0
задан 12 May 2020 в 00:46
1 ответ

Я смог решить эту проблему, сказав Postfix использовать Google DNS сразу после установки postfix:

echo 'nameserver 8.8.8.8' >> /var/spool/postfix/etc/resolv.conf
0
ответ дан 9 April 2021 в 05:05

Теги

Похожие вопросы