Решил на базе OpenBSD45 поднять Exim+Dovecot+Postfixadmin. Чтоб разобраться в деталях, Exim запустил в режиме "абы заработал" а дотачивать - потом. С ним вроде вопросов нет, берет почту и кладет куда нужно. Postfixadmin все делает правильно. Dovecot тоже старается, но ... я не знаю, где он берет значение "%d" , когда к нему обращаюсь с клиента. Это значение постоянно пустое. Для полноты картины приведу конфиги (это отладочный вариант, чтоб разобраться)
exim
Код: Выделить всё
primary_hostname = serv.hbd
hide mysql_servers = localhost/exim/exim/exim
domainlist local_domains = ${lookup mysql{SELECT domain FROM domain WHERE \
domain='${domain}' AND active='1'}}
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domain WHERE \
domain='${domain}' AND active='1'}}
hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/24
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
allow_domain_literals = false
exim_user = _exim
exim_group = _exim
never_users = root
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
helo_accept_junk_hosts = 192.168.0.0/24
begin acl
acl_check_rcpt:
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
require verify = sender
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
control = submission
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient
accept
acl_check_data:
accept
begin routers
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT goto FROM alias WHERE \
address = '${quote_mysql:$local_part@$domain}' OR \
address = '${quote_mysql:@$domain}'}}
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT goto FROM \
alias WHERE address = '${quote_mysql:$local_part@$domain}' OR \
address = '${quote_mysql:@$domain}'}{yes}{no}}
# transport = dovicot_delivery
transport = local_delivery
begin transports
remote_smtp:
driver = smtp
local_delivery:
driver = appendfile
file = /var/mail/$domain/$local_part
delivery_date_add
envelope_to_add
return_path_add
address_pipe:
driver = pipe
return_output
address_reply:
driver = autoreply
begin retry
# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
begin rewrite
begin authenticators
Код: Выделить всё
protocols = pop3 pop3s
listen = *, [::]
disable_plaintext_auth = no
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.log
log_timestamp = "%b %d %H:%M:%S "
ssl_disable = no
ssl_cert_file = /etc/ssl/dovecotcert.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
ssl_parameters_regenerate = 12
#168
ssl_cipher_list = ALL:!LOW:!SSLv2
verbose_ssl = yes
#no
login_dir = /var/dovecot/login
login_user = _dovecot
login_process_size = 64
login_process_per_connection = yes
login_greeting = mailserver ready.
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
mail_location = maildir:/var/mail/%d/%u
#exim/%d/%n
mail_debug = yes
mail_log_prefix = "%Us(%u): "
mail_log_max_lines_per_sec = 10
mmap_disable = yes
verbose_proctitle = yes
first_valid_uid = 521
mbox_write_locks = fcntl
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
postmaster_address = mastertron@serv.hbd
auth_socket_path = /var/dovecot/auth-master
}
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain
# socket listen {
# master {
# path = /var/dovecot/auth-master
# mode = 0600
# user = mailnull
# }
# }
passdb sql {
args = /etc/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot-mysql.conf
}
user = root
}
plugin {
}
Код: Выделить всё
#!/bin/sh
## Dovecot-mysql configuration file
driver = mysql
connect = host=/var/run/mysql/mysql.sock dbname=exim user=dovecot password=assword
default_pass_scheme = CRYPT
password_query = SELECT password FROM mailbox WHERE name = '%n' AND active='1'
user_query = SELECT domain , 521 AS 'uid' , 521 AS 'gid' \
FROM mailbox WHERE name = '%n'
#active ='1'
Все как хотел, но значение %d постоянно пустое, и где его брать? Как Dovecot определяет домен запрашиваемой почты?dovecot: May 22 09:43:57 Info: dovecot v1.1.11 starting up
dovecot: May 22 09:43:58 Info: auth-worker(default): mysql: Connected to /var/run/mysql/mysql.sock (exim)
dovecot: May 22 09:43:58 Info: auth(default): new auth connection: pid=24897
dovecot: May 22 09:43:58 Info: auth(default): new auth connection: pid=21783
dovecot: May 22 09:43:58 Info: auth(default): new auth connection: pid=10387
dovecot: May 22 09:56:07 Info: ssl-build-param: SSL parameters regeneration completed
dovecot: May 22 10:23:33 Info: auth(default): new auth connection: pid=32335
dovecot: May 22 10:23:36 Info: auth(default): client in: AUTH 1 PLAIN service=pop3 lip=192.168.0.1 rip=192.168.0.2 lport=110 rport=1311 resp=
dovecot: May 22 10:23:36 Info: auth(default): client out: CONT 1
dovecot: May 22 10:23:36 Info: auth(default): client in: CONT 1 AGFkbWluAGFkbWlu
dovecot: May 22 10:23:36 Info: auth-worker(default): mysql: Connected to /var/run/mysql/mysql.sock (exim)
dovecot: May 22 10:23:36 Info: auth-worker(default): sql(admin,192.168.0.2): query: SELECT password FROM mailbox WHERE name = 'admin' AND active='1'
dovecot: May 22 10:23:36 Info: auth(default): client out: OK 1 user=admin
dovecot: May 22 10:23:36 Info: auth(default): master in: REQUEST 1 24897 1
dovecot: May 22 10:23:36 Info: auth-worker(default): sql(admin,192.168.0.2): SELECT domain AS name , 521 AS 'uid' , 521 AS 'gid' FROM mailbox WHERE name = 'admin'
dovecot: May 22 10:23:36 Info: auth(default): master out: USER 1 admin name=serv.hbd uid=521 gid=521
dovecot: May 22 10:23:36 Info: pop3-login: Login: user=<admin>, method=PLAIN, rip=192.168.0.2, lip=192.168.0.1
dovecot: May 22 10:23:36 Info: POP3(admin): Effective uid=521, gid=521
dovecot: May 22 10:23:36 Info: POP3(admin): maildir: data=/var/mail//admin
dovecot: May 22 10:23:36 Info: POP3(admin): maildir++: root=/var/mail//admin, index=, control=, inbox=/var/mail//admin
dovecot: May 22 10:23:37 Info: POP3(admin): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Прошу у Вас помощи в понимании данного этапа работы почтовой системы без изучения английского. Кроме того, что систему мне нужно запустить еще вчера (уже горю, надеюсь на помощь) может подскажете, где прочесть курс для МУА.
С уважением и надеждой.