Я не могу понять, почему маскировка не работает на нашем сервере. Я просмотрел несколько десятков онлайн-объяснений этой темы здесь и на других форумах, и, согласно им, мы предпринимаем все правильные шаги. Надеюсь, кто-нибудь скажет мне, что я пропустил. Во избежание опечаток при редактировании я буду использовать здесь имя реального домена.
Мы пытаемся использовать маскировку, чтобы установить полные имена хостов для адресов From: на машине без локально установленного имени хоста. Это для веб-хоста, адреса электронной почты которого размещены у нашего интернет-провайдера, доставляются и хранятся в буфере на отдельном компьютере, определяемом записями MX нашего домена.
Мы не установили полностью определенное имя хоста на самом компьютере, поскольку, когда мы это сделали, мы не могли остановить попытки нашего веб-хоста доставлять электронную почту локально, а не на наши серверы MX.
Чтобы обойти черный список, мы установили HELO для нашего домена actionphotography.ie (подтверждено helocheck@helocheck.abuseat.org), и мы маскируем все наши локальные имена хостов / домены на наше полное имя с помощью этих настроек в sendmail.mc (подтверждено он компилируется нормально перед перезапуском sendmail, и обратите внимание, что затронутый хост находится на Amazon / AWS EC2 и может начать работу с нестандартной конфигурацией sendmail):
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`confHELO_NAME', `actionphotography.ie')dnl
MASQUERADE_AS(`actionphotography.ie')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(apl)dnl
Тем не менее, маскировка, похоже, не меняет доменное имя ни для отправителя заголовка, ни для отправителя конверта; он по-прежнему записывается как "localhost.localdomain":
[25] apl% mail -v john@actionphotography.ie
Subject: foo
EOT
Null message body; hope that's ok
john@actionphotography.ie... Connecting to [127.0.0.1] via relay...
220 localhost.localdomain ESMTP Sendmail 8.14.4/8.14.4; Tue, 4 Aug 2015 18:41:55 GMT
>>> EHLO localhost.localdomain
250-localhost.localdomain Hello apl [127.0.0.1], pleased to meet you ...
>>> MAIL From:<ec2-user@localhost.localdomain> SIZE=229
250 2.1.0 <ec2-user@localhost.localdomain>... Sender ok
>>> RCPT To:<john@actionphotography.ie>
>>> DATA
250 2.1.5 <john@actionphotography.ie>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 t74Ifte9002551 Message accepted for delivery
john@actionphotography.ie... Sent (t74Ifte9002551 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 localhost.localdomain closing connection
Наш интернет-провайдер сообщает нам, что почта возвращается с нашего сервера, поскольку у нас до сих пор нет квалифицированного доменного имени в нашем адресе От:, со следующим ответом:
----- Transcript of session follows -----
... while talking to mx1.reg365.net.:
>>> DATA
<<< 550 Sender could not be verified, please check your from address
550 5.1.1 <john@actionphotography.ie>... User unknown
<<< 503-All RCPT commands were rejected with this error:
<<< 503-Sender could not be verified, please check your from address
<<< 503 Valid RCPT command must precede DATA
(Обратите внимание, что адрес выше перед «Пользователь неизвестен» действителен на почтовом сервере, поэтому я могу только предположить, что это «функция», которая сообщает спамерам, чтобы они заблудились, если они отправляют адреса From: с неполными именами хостов. Сообщите мне, если Я могу ошибаться в этом.)
Я могу подтвердить, что и отправитель заголовка, и отправитель конверта должны быть переписаны с правильным доменным именем, поэтому не знаю, почему в приведенном выше диалоговом окне отображается только локальный адрес From::
[root@apl mail]# sendmail -bt
...
> /tryflags HS
> /try esmtp ec2-user@localhost.localdomain
... Rcode = 0, addr = ec2-user@actionphotography.ie
...
> /tryflags ES
> /try esmtp ec2-user@localhost.localdomain
... Rcode = 0, addr = ec2-user@actionphotography.ie
Мой вопрос (ы): Разве это не правда, что если маскировка работает, мы вообще не должны видеть "localhost.localdomain" в почтовом диалоге? Что еще я должен видеть, чтобы убедиться, что маскировка работает правильно? ... и что я могу сделать для этого?
Насколько я понимаю, вы изменили sendmail.mc
/sendmail.cf
. Вы сообщили о диалоге SMTP с 127.0.0.1:25
- контролируется submit.mc
/submit.cf
. Маскарад в sendmail.cf
должен действовать позже, когда сообщение листья 127.0.0.1:25
.
Выполните следующую команду / скрипт так как root
увидеть SMTP-диалог с MX домена.
#!/bin/sh
RECIPIENT=john@actionphotography.ie
SENDER=ec2-user@localhost.localdomain
/usr/sbin/sendmail -i -v -Am -f$SENDER $RECIPIENT <<END
Subject: foo test
From: $SENDER
foo test
END
man sendmail
:
-Am Use sendmail.cf even if the operation mode indicates an initial mail submission.