dnl dnl поддержка клиентской SMTP Auth (список) dnl dnl NO - не использовать SMTP Auth dnl PLAIN - использовать PLAIN SMTP Auth dnl LOGIN - использовать LOGIN SMTP Auth dnl CRAM-MD5 - использовать CRAM-MD5 SMTP Auth dnl define(`confSMTP_AUTH_CLIENT', `NO')dnl dnl dnl данные аутентификации указываются в файле CONFDIR/smtpauthdb в виде трех колонок, dnl разделенных двоеточиями: dnl host:login:password dnl dnl пример: dnl mail.server:clientname:secret dnl *:defaultclientname:defaultsecret dnl dnl при необходимости использовать логины и пароли в зависимости от адреса отправителя: dnl NO - не использовать логины и пароли в зависимости от адреса отправителя dnl YES - использовать логины и пароли в зависимости от адреса отправителя dnl define(`confSMTP_AUTH_CLIENT_PER_SENDER', `NO')dnl dnl dnl пример: dnl mail.server<@>sender_address1:clientname1:secret1 dnl mail.server<@>sender_address2:clientname2:secret2 dnl mail.server:clientname:secret dnl dnl при необходимости использования другого разделителя его нужно указать в confSMTP_AUTH_CLIENT_SEPARATOR: dnl define(`confSMTP_AUTH_CLIENT_SEPARATOR', `|')dnl dnl dnl пример: dnl mail.server:clientname|secret dnl ifelse(SECTION, `MAIN', `dnl hostlist hosts_try_auth = lsearch;CONFDIR/smtpauthdb ') ifelse(SECTION, `AUTHENTICATORS', `dnl ifdef(`confSMTP_AUTH_CLIENT_SEPARATOR',`',`define(`confSMTP_AUTH_CLIENT_SEPARATOR', `:')')dnl ifelse(len(X`'confSMTP_AUTH_CLIENT_SEPARATOR), `1', `define(`confSMTP_AUTH_CLIENT_SEPARATOR', `:')')dnl ifdef(`confSMTP_AUTH_CLIENT_PER_SENDER', `ifelse(confSMTP_AUTH_CLIENT_PER_SENDER, `NO', `dnl define(`_confSMTP_AUTH_CLIENT_LOOKUP_', `${lookup{$host}lsearch*{CONFDIR/smtpauthdb}{$value}fail}')dnl ', `dnl define(`_confSMTP_AUTH_CLIENT_LOOKUP_', `${lookup{$host<@>$sender_address}lsearch*{CONFDIR/smtpauthdb}{$value}{${lookup{$host}lsearch*{CONFDIR/smtpauthdb}{$value}fail}}}')dnl ')',`dnl define(`_confSMTP_AUTH_CLIENT_LOOKUP_', `${lookup{$host}lsearch*{CONFDIR/smtpauthdb}{$value}fail}')dnl ') dnl ifdef(`confSMTP_AUTH_CLIENT_PER_SENDER', `ifelse(confSMTP_AUTH_CLIENT_PER_SENDER, `NO', `')') ifelse_strstr(confSMTP_AUTH_CLIENT, `PLAIN', `dnl client_auth_plain: driver = plaintext public_name = PLAIN client_send = "^${extract{1}{confSMTP_AUTH_CLIENT_SEPARATOR}{_confSMTP_AUTH_CLIENT_LOOKUP_}}^${extract{2}{confSMTP_AUTH_CLIENT_SEPARATOR}{_confSMTP_AUTH_CLIENT_LOOKUP_}}" ') ifelse_strstr(confSMTP_AUTH_CLIENT, `LOGIN', `dnl client_auth_login: driver = plaintext public_name = LOGIN client_send = ": ${extract{1}{confSMTP_AUTH_CLIENT_SEPARATOR}{_confSMTP_AUTH_CLIENT_LOOKUP_}} : ${extract{2}{confSMTP_AUTH_CLIENT_SEPARATOR}{_confSMTP_AUTH_CLIENT_LOOKUP_}}" ') ifelse_strstr(confSMTP_AUTH_CLIENT, `CRAM-MD5', `dnl client_cram_md5: driver = cram_md5 public_name = CRAM-MD5 client_name = ${extract{1}{confSMTP_AUTH_CLIENT_SEPARATOR}{_confSMTP_AUTH_CLIENT_LOOKUP_}} client_secret = ${extract{2}{confSMTP_AUTH_CLIENT_SEPARATOR}{_confSMTP_AUTH_CLIENT_LOOKUP_}} ') ')