Вот приблизительно так. Только Мне нужно настроить smtp авторизацию, таким образом что бы не авторизованный пользователь не смог отсылать письма никуда. На данный момент у пользователя получается отправить письмо локально, то есть user1@test.ru (не авторизован) может послать письмо user2@test.ru нужно сделать так что бы не смог. За основу взял конфиг из Virtual Exim и http://www.lissyara.su/?id=1194 и http://www.opennet.dev/openforum/vsluhforumID1/45256.htmldomainlist local_domains = @ : 127.0.0.1
domainlist relay_to_domains = 127.0.0.1
hostlist relay_from_hosts = 127.0.0.1
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_content
auth_advertise_hosts = *
begin acl
acl_check_helo:
accept hosts = :
deny message = "HELO/EHLO require by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
accept
acl_check_rcpt:
deny message = "HELO/EHLO require by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
# Отрицайте, если адрес отправителя не может быть проверен
require verify = sender
accept authenticated = *
control = submission/sender_retain
# Желаемый эффект можно получить если убрать этот блок но тогда перестанет приходить почта с других доменов
accept domains = +local_domains
endpass
message = "In my mailserver not stored this user"
verify = recipient
deny local_parts = ^.*[@%!/|] : ^\\.
deny message = relay not permitted
acl_check_content:
# Include Vexim specific rcpt ACLs
.include /usr/local/etc/exim/vexim-acl-check-content.conf
# finally accept all the rest
accept
begin authenticators
plain_login:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT '1' FROM users \
WHERE username = '${quote_mysql:$2}' \
AND clear = '${quote_mysql:$3}'} {yes}{no}}
server_set_id = $2
fixed_login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${lookup mysql{SELECT '1' FROM users \
WHERE username = '${quote_mysql:$1}' \
AND clear = '${quote_mysql:$2}'} {yes}{no}}
server_set_id = $1
fixed_cram:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT clear FROM users \
WHERE username = '${quote_mysql:$1}'}{$value}fail}
server_set_id = $1