Поскольку я настроил свой сервер, я часто получаю эти письма в папке со спамом:
** truncated **
----- The following addresses had permanent fatal errors -----
<root@db1.mydomain.com>
(reason: 554 5.7.1 <root@localhost.mydomain.com>: Relay access denied)
** truncated **
У меня действительно есть сервер db1.mydomain.com, но по какой-то причине, которую я не могу найти, он перенаправлен на localhost.mydomain.com.
Конечно, я настроил алиасы:
$: cat /etc/aliases
root: admin@mydomain.com
....
и обновил его через
$: newaliases
Но все же проблема не исчезла.
Не знаю, что я пропустил и где это исправить. И все, что я пытался искать в Google, мне не очень помогает (большую часть времени это / etc / aliases).
Спасибо за помощь. (если вам нужны подробности, спрашивайте, я их добавлю)
Похоже, вы неправильно настроили имя хоста (localhost ??)
Убедитесь, что ваше имя хоста (найденное с помощью команды hostname) настроено на ACCEPT и RELAY email.
Вы не упомянули, какой MTA используете, но добавили тег для sendmail, так что я предполагаю, что вы это используете.
Проверьте /etc/mail/sendmail.cf и проверьте наличие строк, начинающихся с
Cw
и
Fw
заявления. Убедитесь, что ваше имя хоста (найдено с помощью команды hostname) настроено там.
Вам необходимо настроить маскировку sendmail. Если я правильно понимаю, вы хотите, чтобы почта с вашего хоста db1.mydomain.com казалась приходящей с mydomain.com
Это будет проще, если вы используете макропроцессор m4 - редактирование sendmail.cf, по моему опыту, быстро становится волосатым, вместо этого отредактируйте шаблон sendmail.mc и перестройте его чем-то вроде
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
По сути, если вы начинаете редактировать sendmail.cf напрямую, вы сами по себе. (вы также не указали, на какой ОС вы работаете, поэтому вам, возможно, придется установить процессор m4 и пакеты sendmail-cf или аналогичные для того, что вы используете)
Добавьте эти строки в свой sendmail.mc:
MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
Вам понадобится masquerade_entire_domain, только если вы хотите переписать конверты, скажем, с машины host.myotherdomain.com. Вероятно, вам это не понадобится, поэтому вы можете закомментировать его в файле sendmail.mc, добавив к нему "dnl". (обратите внимание, что перезапись конверта контролирует, что sendmail использует в SMTP / ESMTP-диалогах с другими серверами, в то время как строка MASQUERADE_AS перезаписывает строку «From:», которую фактически видит получатель)
«dnl», наоборот, работает в m4 так же, как «#» в сценариях оболочки. «Удалить через новую строку» IIRC. Вы не можете придумать это. Это действительно отвратительно.
Если вы хотите, чтобы sendmail также маскировал почту от root (обычно он предоставляет полное доменное имя для почты от root), вам необходимо изменить
EXPOSED_USER(`root')dnl
к
dnlEXPOSED_USER(`root')dnl
Хорошо, теперь вам нужно убедиться, что ваши отправляющие клиенты авторизованы для ретрансляции через db1.mydomain.com. Прямо сейчас по какой-то причине ваша машина отправляет с именем конверта localhost.mydomain.com (я бы мог представить, что он подключается к своему адресу обратной петли или чему-то еще, но не могу быть уверен, возможно, у вас что-то напортачило в вашем DNS ), который не разрешено ретранслировать. Самый простой и безопасный способ обойти это - составить список всех имен конвертов, которые ваши авторизованные машины будут представлять в / etc / mail / relay-domains (в вашем случае, добавив localhost.mydomain.com в ваш файл relay-domains вместе с любые другие хосты (опять же, FQDN с соответствующими записями A и PTR) и добавить
FEATURE(relay_hosts_only)dnl
на ваш sendmail.mc.
В качестве альтернативы вы можете использовать
FEATURE(relay_entire_domain)dnl
Это позволит любому хосту в mydomain.com ретранслировать почту через db1.mydomain.com. Лично я предпочитаю более ограниченный вариант.
Есть много (МНОГО) других макросов ФУНКЦИИ
Вам, вероятно, следует взглянуть на документацию, чтобы получить представление. (sendmail.com) - (хотя за это время вы могли бы заменить sendmail на postfix ...)
Когда вы закончите редактировать свой sendmail.mc, сгенерируйте sendmail.cf, как я описал выше.
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
И перезапустите sendmail.
Надеюсь, это поможет. Поищите в Google "маскировку sendmail" и "управление ретрансляцией sendmail" для получения дополнительной информации. И не редактируйте свой cf напрямую, это мир боли.
-qb