Параметр sendmail lda для полного адреса получателя
Используя это:
define('LOCAL_MAILER_ARGS', 'procmail -t -Yo -a $h -d $u')
в моем sendmail mc выдает логин procmail вроде
user
вместо
user@domain.com
с помощью
define('LOCAL_MAILER_ARGS', 'procmail -t -Yo -a $h -d $u@$h')
дает тогда
user@localhostname
Моя проблема в том, что у нас есть пользователи электронной почты в форме 'user@domain.tld', а не 'user' - таким образом, procmail не может найти, например, почтовые каталоги только с адресной частью пользователя 'user'. Как можно предоставить procmail полный адрес получателя от sendmails lda call?
РЕДАКТИРОВАТЬ:
Я постараюсь быть более понятным, чтобы увидеть причину.
Мои "виртуальные" получатели: а) не имеют системных пользователей и имеют разные домены в своих адресах, все они установлены с помощью функции use_cw_file. Локальный почтовик - это procmail AND dovecot (+sieve), который, наконец, также обрабатывает виртуальных пользователей. Потому что dovecot присваивает имя домену в дополнение к пользователю для обработки, например, admin@domain1.com и admin@domain2.com на одном хосте.
Поэтому мне нужен sendmail для доставки полного адреса в lda(стек) (procmail -> sieve -> dovecot).
2 ответа
Sendmail: доставка procmail для виртуальных доменов
Вы можете выбрать procmail mailer с помощью сценария prcoamil в качестве аргумента в mailertable (procmail в качестве локального почтовика - другой зверь).
отправляемый файл:
# deliver messages to domain.tld
# using etc/procmailrcs/domain.tld.rc procmail script
domain.tld procmail:/etc/procmailrcs/domain.tld.rc
файл доступа (таблицы):
to:domain.tls RELAY
Комментарии:
- procmail обрабатывает скрипт в /etc/procmailrcs особым образом (см.
man procmail
) - mailertable НЕ применяется для локальных доменов электронной почты, поэтому запись в таблицу доступа требуется для приема сообщений в домен отовсюду.
Как использовать rootecho '$=w' | sendmail -bt
получить список локальных почтовых доменов - Вы можете использовать virtusertable с _VIRTUSER_STOP_ONE_LEVEL_RECURSION_, чтобы перечислить действительные адреса в домене и отклонить оставшиеся
- По умолчанию scipt будет выполняться один раз для каждого получателя в домене
$LOGNAME
по определению является локальным именем пользователя. Я не думаю, что есть способ переопределить это (или что должен быть один).