Значит exim со следующими установками
<i>
### /etc/mail/exim.conf ###
primary_hostname = gw.flora.local
domainlist local_domains = ${lookup mysql{SELECT domain FROM domains \
WHERE domain='${domain}' AND \
(type='LOCAL' OR type='VIRTUAL')}}
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domains \
WHERE domain='${domain}' AND type='RELAY'}}
# hostlist relay_from_hosts = 192.168.130.0/255.255.255.0
hostlist relay_from_hosts = 127.0.0.1
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
qualify_domain = flora.local
log_selector = \
+all_parents \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run
allow_domain_literals = false
# never_users = root:daemon:bin
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 3d
freeze_tell = postmaster
auto_thaw = 1h
#system_filter = /etc/mail/system-filter
#message_body_visible = 5000
message_size_limit = 10M
smtp_accept_max = 50
smtp_accept_max_per_connection = 50
smtp_connect_backlog = 50
smtp_accept_max_per_host = 25
split_spool_directory = true
remote_max_parallel = 15
hide mysql_servers = localhost/exim/sqlmail/qazwsx
begin acl
acl_check_rcpt:
accept hosts = :
deny local_parts = ^.*[@%!/|] : ^\\.
accept local_parts = postmaster
domains = +local_domains
require verify = sender
deny message = host is listed in
accept domains = +local_domains
endpass
message = unknown user
verify = recipient
accept domains = +relay_to_domains
endpass
message = unrouteable address
verify = recipient
accept hosts = +relay_from_hosts
accept authenticated = *
deny message = relay not permitted
acl_check_data:
deny message = Go Away! Eat Your Spam Self!
condition = ${if match{$message_body} \
{105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
{yes}{no}}
accept
begin routers
#drweb_router:
# driver = accept
# condition = ${if
# eq{$received_protocol}{drweb-scanned}{0}{1}}
# transport = drweb
# no_verify
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT recipients FROM aliases \
WHERE local_part='${local_part}' AND domain='${domain}'}}
userforward:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT recipients FROM userforward \
WHERE local_part='${local_part}' AND domain='${domain}'}}
mysqluser:
driver = accept
condition = ${if eq{} {${lookup mysql{SELECT home FROM users \
WHERE id='${local_part}' AND mbox_host='${domain}' \
AND active='Y'}}}{no}{yes}}
transport = mysql_delivery
begin transports
remote_smtp:
driver = smtp
mysql_delivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = ${lookup mysql{SELECT CONCAT(home, "/Maildir") FROM users \
WHERE id='${local_part}' AND mbox_host='${domain}'}}
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0600
quota = ${lookup mysql{SELECT quota FROM users \
WHERE id='${local_part}' AND mbox_host='${domain}'}{${value}M}}
quota_size_regex = S=(\d+)$
quota_warn_threshold = 75%
return_path_add
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
begin retry
* quota
* * F,2h,15m; G,16h,1h,1.5;
begin rewrite
begin authenticators
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT id FROM users \
WHERE id = '${quote_mysql:${local_part:$2}}' \
AND mbox_host = '${quote_mysql:${domain:$2}}' \
AND passwd = '${quote_mysql:$3}' \
AND active = 'Y'}{yes}{no}}
server_prompts = :
server_set_id = $2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT id FROM users \
WHERE id = '${quote_mysql:${local_part:$1}}' \
AND mbox_host = '${quote_mysql:${domain:$1}}' \
AND passwd = '${quote_mysql:$2}' \
AND active = 'Y'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1
auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT passwd FROM users \
WHERE id = '${quote_mysql:${local_part:$1}}' \
AND mbox_host = '${quote_mysql:${domain:$1}}' \
AND active = 'Y'}{$value}fail}
server_set_id = $1
### /etc/mail/exim.conf ###</i>
выдает следующее
<b>
root@gw:/etc# exim -bt andreev@flora.local
andreev@flora.local
router = mysqluser, transport = mysql_delivery
root@gw:/etc# exim -v andreev@flora.local
From: andreev@flora.local
To: andreev@flora.local
Subject: test exim
Testing
LOG: MAIN
<= root@flora.local U=root P=local S=339
delivering 1IuOns-0006he-LU
root@gw:/etc# LOG: MAIN
=> andreev <andreev@flora.local> R=mysqluser T=mysql_delivery
LOG: MAIN
Completed
root@gw:/etc# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 gw.flora.local ESMTP Exim 4.68 Tue, 20 Nov 2007 11:50:52 +0300
ehlo localhost
250-gw.flora.local Hello localhost [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
MAIL FROM: andreev@flora.local
250 OK
RCPT TO: andreev@flora.local
550 host is listed in
</b>
mysql> SELECT * FROM domains;
+-------------+---------+
| domain | type |
+-------------+---------+
| flora.local | LOCAL |
+-------------+---------+
3 rows in set (0,00 sec)
mysql> SELECT * FROM users;
+---------+---------------+---------+------+------+-------------+---------------+-----------------------------------------+-------+--------+
| id | crypt | passwd | uid | gid | mbox_host | shell | home | quota | active |
+---------+---------------+---------+------+------+-------------+---------------+-----------------------------------------+-------+--------+
| andreev | zjy82fy87REMQ | vsa2121 | 8 | 12 | flora.local | /sbin/nologin | /home/vmail/domains/flora.local/andreev | 15 | Y |
+---------+---------------+---------+------+------+-------------+---------------+-----------------------------------------+-------+--------+
3 rows in set (0,00 sec)
В чем проблема - понять не могу, хоть убей.
Последние комментарии
10 лет 10 недель назад
10 лет 29 недель назад
10 лет 39 недель назад
10 лет 39 недель назад
11 лет 29 недель назад
11 лет 29 недель назад
11 лет 29 недель назад
11 лет 30 недель назад
11 лет 30 недель назад
11 лет 31 неделя назад