У меня проблемы с получением sendmail для отправки писем с моей машины AWS EC2.
Я использую следующую команду для отправки электронного письма:
sendmail -vt < mail.txt
Файл mail.txt имеет следующее содержимое (отредактировано в целях безопасности):
To: locksleyu@yahoo.com
Subject: Put a subject here
From: to_whoever@example.org
Message body
Когда я запускаю sendmail, похоже, что все работает:
>>> MAIL From:<ec2-user@XXX.us-west-2.compute.internal> SIZE=128
250 2.1.0 <ec2-user@XXX.us-west-2.compute.internal>... Sender ok
>>> RCPT To:<locksleyu@yahoo.com>
>>> DATA
250 2.1.5 <locksleyu@yahoo.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 s0FLLsxw009758 Message accepted for delivery
locksleyu@yahoo.com... Sent (s0FLLsxw009758 Message accepted for delivery)
Однако я никогда не получаю электронное письмо на мою учетную запись Yahoo. Затем я проверил / var / log / messages, и он сказал, что у меня новая почта в «/ var / spool / mail / ec2-user». Вот что я увидел в этом файле:
----- The following addresses had permanent fatal errors -----
<locksleyu@yahoo.com>
(reason: 553 #5.1.8 Domain of sender address <ec2-user@XXX.us-west-2.compute.internal> does not exist)
----- Transcript of session follows -----
... while talking to smtp02.yahoo.com.:
>>> MAIL From:<ec2-user@XXX.us-west-2.compute.internal> SIZE=669
<<< 553 #5.1.8 Domain of sender address <ec2-user@XXX.us-west-2.compute.internal> does not exist
501 5.6.0 Data format error
Может кто-нибудь сказать мне, какая конфигурация необходима для работы? XXX выше - это мой адрес ip-XXX-YYY-ZZZ-AAA, который соответствует моей машине EC2.
Я немного искал решения, но ни одно из найденных мной пока не помогло.
Значительные участки адресного пространства EC2 занесены в черный список несколькими провайдерами электронной почты. Если вам нужно отправить электронное письмо с вашего экземпляра, вам нужно будет либо ретранслировать через хост, отличный от EC2, либо использовать сервис AWS SES для отправки электронной почты.
Лично я использую SES, поскольку его очень легко интегрировать с вашим MTA, а цены очень низкие (или бесплатные) для всех, кроме самых больших объемов электронной почты.
----- Transcript of session follows -----
... while talking to smtp02.yahoo.com.:
>>> MAIL From:<ec2-user@XXX.us-west-2.compute.internal> SIZE=669
<<< 553 #5.1.8 Domain of sender address <ec2-user@XXX.us-west-2.compute.internal> does not exist
Явно установить адрес отправителя конверта с помощью sendmail -f
параметры командной строки
ИЛИ
Сделайте так, чтобы ваш sendmail использовал "это имя электронной почты хоста" ($ j) с общедоступным MX
или A
Записи DNS.
https://askubuntu.com/questions/9540/how-do-i-change-the-computer-name
ИЛИ
Сделайте ваш sendmail маскирующим под другой хост для электронной почты
https://www.sendmail.com/sm/open_source/docs/m4/masquerading.html