Я пытался настроить свой экземпляр 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: root и 640 и выглядит так:
# NOTE: these are credentials for IAM User [REDACTED]
[email-smtp.us-east-1.amazonaws.com]:587 XXXXXXXXXXXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
где XXX ... и YYY ... - это учетные данные, которые в настоящее время работают со старого сервера.
Я видел множество сообщений на этом форуме, посвященных этому типу ошибок, но предлагаемые ими решения не решают мою проблему:
type=A: Host not found, try again
. Если я сниму скобки, там написано type=MX: Host not found, try again
. Это единственная разница.dig email-smtp.us-east-1.amazonaws.com
команда всегда дает около полдюжины адресов AWS. Файл /etc/resolv.conf
читается во всем мире. Я нигде не пробовал копировать или создавать символические ссылки на этот файл. /etc/postfix/sasl_passwd
принадлежит / читается root, а учетные данные, которые он содержит, соответствуют relayhost в main.cf, а также работают на другом, более старом сервере.