Проблема: конфигурация ведения журнала sendmail по умолчанию не регистрируется за сообщение информация об авторизации, которая мне нужна (т.е. я хочу знать, какой пользователь / метод аутентификации использовался для определенного идентификатора сообщения). Следуя совету от эта запись, Я получил следующие строки cf:
LOCAL_CONFIG
Klog syslog
# This works
HSubject: $>+LogSubject
# this does not
HX-Authost: ${mail_host}
HX-Authost: $>+LogAuthAuthor
LOCAL_RULESETS
SLogSubject
R$* $: $(log Subject: $1 authenticated-by: $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $) $1
SLogAuthAuthor
R$* $: $(log Authenticated-by: $1 $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $) $1
Первый дает (в почтовом журнале):
sendmail[10814]: r2DEJl9P010814: Subject:the Subject.authenticated by:PLAIN,auser,0,,esmtp,example.com.,someone@example.com
Второй:
sendmail[10814]: r2DEJl9P010814: Authenticated-by:example.com.,,,,esmtp,example.com.,auser@example.com
Поэтому кажется, что макрос {auth_xxxx} пуст, когда срабатывает второе правило ... но это не так. Фактически, я могу записать их, если вместо этого помещу их в строку H:
HX-Authost: ${mail_host} ${auth_type} ${auth_authen} ${auth_ssf} ${auth_author}
HX-Authost: $>+LogAuthAuthor1
За исключением того, что я не хочу этого делать, потому что я бы отправил информацию об авторизации там, где я хочу только ее зарегистрировать. На самом деле все решение уродливо койот, не говоря уже об ужасающем бездельничании, и я приветствовал бы лучшее решение (то, которое не начинается с «изменить MTA» - я полностью доволен sendmail)
Обратите внимание, что повышение LogLevel до 10 и выше (как было предложено), похоже, не сокращает его, потому что информация об авторизации регистрируется один раз за сеанс (т.е. при входе в систему), в то время как я хочу, чтобы она была в контексте сообщения.
Привет, альф
Вы можете создавать записи журнала, которые хотите check_eoh
(конец заголовков) или check_data
наборы правил (после команды smtp data).
LOCAL_RULESETS
Scheck_data
R$* $: $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $) $1
[Перед $:] должна стоять TAB
check_data получает как ввод number_of_recipients
, check_eoh получает на входе number_of_headers $| total_headers_bytes
check_mail
было бы лучше, но FEATURE(delay_checks)
делает это более сложным.
Измените LogLevel в соответствии с вашими потребностями, например
define(`confLOG_LEVEL', `14')dnl
http://answers.google.com/answers/threadview?id=398644 В: Ведение журнала авторизованного пользователя sendmail.
Вкратце: увеличьте LogLevel до 14
Файл RELEASE_NOTES в состояниях рассылки sendmail:
8.10.0/8.10.0 2000/03/01
[...]
Log basic information about authenticated connections at LogLevel 10 or higher.