Sendmail-8.14.4, Centos 6.3
Система рассылает письма от имени sales@mydomain.ua средствами php-приложения, поле From заголовка формируется там. Получателем sales@ является мейл-сервер заказчика.
Для того, чтобы штуки с подстановкой в поле From нужного нам домена работали, прошлый админ добавил «маскарадинг конверта»:
MASQUERADE_AS(`mydomain.ua')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(mydomain.ua)dnl
Но мой вопрос связан со случаем более веселым:
- PHP шлет письмо от имени sales@mydomain.ua юзеру sasha@blah.ru
- На сервере blah.ru не нашлось учётки sasha,
- зато она нашлась на mydomain.ua и письмо получил sasha@mydomain.ua
Что делал:
- нагуглил такой параметр как LUSER_RELAY,
который, будучи установлен в '/dev/null' запрещает поиск адресата среди локальных юзеров.
define(`LUSER_RELAY', `/dev/null')dnl
- Выпилил опцию always_add_domain, которая была в дефолтном конфиге.
Не помогло.
P.S. я совсем не postmaster, поэтому в моих знаниях могут быть пробелы. Я подозреваю, что дело в поле заголовка return-path, который содержал обратный адрес. По MX-записи попали на почтовый сервер заказчика, но почему искали на нем аккаунт 'sasha' - я не понимаю.
Вопросы:
- Как почта попала на sasha@mydomain.ua ?
- Как мне дропать \ не отправлять почту на несуществующие ящики?
- Как проверять хотя бы валидность домена в адресе получателя перед отправкой? Я находил штуки вроде badmx и accept_unresolvable_domains, но они, насколько я понял, работают на прием почты.
Полный конфиг sendmail здесь:
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`LUSER_RELAY', `/dev/null')dnl
define(`confTO_QUEUEWARN', `5m')dnl
define(`confTO_QUEUERETURN', `5m')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MASQUERADE_AS(`mydomain.ua')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(mydomain.ua)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl