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

Настройте sendmail для отправки писем как example.com, но ретранслируйте фактические письма на example.com на другой сервер

Облачный сервер, созданный третьей стороной, использует sendmail для отправки электронной почты.

Теперь sendmail настроен так, что письма от www-data@localhost [1] отправляется как www-data@example.com. Электронные письма в основном отправляются на стороннюю электронную почту, например someone@example2.net (обратите внимание на другой целевой домен).

Однако теперь нам нужно также отправить электронное письмо на адрес admins@example.com. Однако попытка сделать это приводит к 550 5.1.1 <admins@example.com>... User unknown.

Я совершенно не разбираюсь в настройке sendmail.

Может ли кто-нибудь подсказать, как это сделать правильно?

[1] Это ServerAdmin имя, как определено в /etc/apache2/sites-available/default


@MadHatter спросил:

«sendmail настроен так, что электронные письма с www-data @ localhost отправляются как www-data@example.com». Как именно?

я считать через следующие строки в /etc/mail/sendmail.mc:

dnl # Replace sender's domain
MASQUERADE_AS(`example.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(`example.com')dnl

(Опять же, не я создаю файл sendmail.mc; если есть определенная строка, которую нужно искать, я буду рад опубликовать ее здесь).


Вот дополнительная информация:

root@webserver:/etc/mail# grep '^Fw' sendmail.cf
Fw/etc/mail/local-host-names %[^\#]
root@webserver:/etc/mail# cat local-host-names
localhost
webserver

Является example.com внесены в список локальных почтовых доменов? Чтобы получить список локальных почтовых доменов, выполните от имени пользователя root команду ниже:

echo '$=w' | sendmail -Am -bt

Sendmail по умолчанию добавляет автоматически определяемые локальные почтовые домены к доменам, перечисленным в /etc/mail/local-host-names . Его можно отключить с помощью confDONT_PROBE_INTERFACES в sendmail.mc

define(`confDONT_PROBE_INTERFACES',`True')

sendmail.mc необходимо перекомпилировать в sendmail.cf, демон sendmail необходимо перезапустить или включить HUP, чтобы увидеть новый sendmail.cf.

спасибо за попытку ответить на мой вопрос!

За выходные парень, который изначально настраивал сервер, наконец-то изменил sendmail.mc со следующим (я только что получил его электронное письмо сегодня утром):

  • Удалите следующую строку:
define(`confDOMAIN_NAME', `example.com')dnl
  • Добавьте одну строку после ранее размещенных 4 строк:
MASQUERADE_AS(`example.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(`example.com')dnl
define(`MAIL_HUB', `mailgw.example.com.')dnl

Теперь письма на @example.com правильно перенаправляется на фактический почтовый сервер, обслуживающий @example.com.

Спасибо за помощь, ребята!