Назад | Перейти на главную страницу

Ошибка получения sendmail для правильной отправки писем с сервера AWS EC2 (домен адреса сервера не существует)

У меня проблемы с получением 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