Hello,
On a fresh install of Jessie, I achieve to make dovecot/postfix working with SQL, but I still can't send email to alias for wich one I get : "Unknown user"
After debug enable in dovecot, I see that the user_query SQL , just query for the "users" table and not the "forward" table so the final alias user is not known.
But when I check postfix for alias, it seems ok :
root@cluster-dovecot:/etc/dovecot# postmap -q contact2@XXXXXXXX.com mysql:alias_maps contact@XXXXXXXXXX.com
So what do I missed for alias working with dovecot ?
Do I need a special conf in master.conf for sending alias AND final recipient or do I have to change the dovecot user_query for taking in acount the "forward" table in the SQL query ? .... or other thing I could miss ...
Thanks a lot ...
Samuel.
DOVECOT :
root@cluster-dovecot:/etc/dovecot# dovecot --version 2.2.13
root@cluster-dovecot:/etc/dovecot# dovecot -n # 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.0 auth_debug_passwords = yes auth_mechanisms = plain login dict { quota = mysql:/etc/dovecot/dovecot-dict-sql-user.conf quota_domain = mysql:/etc/dovecot/dovecot-dict-sql-domain.conf } lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_debug = yes mail_location = mbox:~/mail:INBOX=/var/mail/%u mail_plugins = quota fts fts_solr acl zlib mail_log notify managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { quota = dict:user::proxy::quota quota2 = dict:domain:%d:proxy::quota_domain quota_grace = 1M quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=80%% quota-warning 80 %u quota_warning4 = -storage=100%% quota-warning below %u sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = imap pop3 sieve lmtp service auth { unix_listener /var/spool/postfix/private/auth { group = mail mode = 0660 user = postfix } unix_listener auth-master { mode = 0660 user = vmail } unix_listener auth-userdb { mode = 0660 user = vmail } } service dict { unix_listener dict { mode = 0666 user = dovecot } } service imap-login { inet_listener imap { address = * port = 143 } inet_listener imaps { address = * port = 993 } process_limit = 256 } service managesieve-login { inet_listener sieve { port = 4190 } } service managesieve { process_limit = 1024 } service quota-status { executable = quota-status -p postfix inet_listener { port = 12340 } } service quota-warning { executable = script /usr/local/bin/quota-warning.sh unix_listener quota-warning { mode = 0666 user = vmail } user = vmail } ssl_cert =
POSTFIX :
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases alias_maps_dbname = $mysql_dbname alias_maps_hosts = $mysql_host alias_maps_password = $mysql_passwd alias_maps_select_field = destination alias_maps_table = forwards alias_maps_user = $mysql_user alias_maps_where_field = source append_dot_mydomain = no biff = no bounce_queue_lifetime = 1d broken_sasl_auth_clients = yes config_directory = /etc/postfix dovecot_destination_concurrency_limit = 1 dovecot_destination_recipient_limit = 1 gid_maps_dbname = $mysql_dbname gid_maps_hosts = $mysql_host gid_maps_password = $mysql_passwd gid_maps_select_field = gid gid_maps_table = users gid_maps_user = $mysql_user gid_maps_where_field = concat(username,'@',domain) inet_interfaces = all mailbox_command = procmail -a "$EXTENSION" mailbox_domains_dbname = $mysql_dbname mailbox_domains_hosts = $mysql_host mailbox_domains_password = $mysql_passwd mailbox_domains_select_field = domain mailbox_domains_table = domains mailbox_domains_user = $mysql_user mailbox_domains_where_field = domain mailbox_maps_dbname = $mysql_dbname mailbox_maps_hosts = $mysql_host mailbox_maps_password = $mysql_passwd mailbox_maps_select_field = home mailbox_maps_table = users mailbox_maps_user = $mysql_user mailbox_maps_where_field = concat(username,'@',domain) mailbox_size_limit = 0 maximal_queue_lifetime = 1d mydestination = cluster-dovecot.ingescom.com, localhost.ingescom.com, , localhost myhostname = cluster-dovecot.ingescom.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname mysql_dbname = mail mysql_host = 10.40.30.1 mysql_passwd = mail_admin mysql_user = mail_admin readme_directory = no recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_delay_reject = yes smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:12340 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination reject smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $mydomain smtpd_sasl_security_options = noanonymous smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes uid_maps_dbname = $mysql_dbname uid_maps_hosts = $mysql_host uid_maps_password = $mysql_passwd uid_maps_select_field = uid uid_maps_table = users uid_maps_user = $mysql_user uid_maps_where_field = concat(username,'@',domain) virtual_alias_maps = mysql:alias_maps virtual_gid_maps = mysql:gid_maps virtual_mailbox_base = / virtual_mailbox_domains = mysql:mailbox_domains virtual_mailbox_limit = 1024000000 virtual_mailbox_maps = mysql:mailbox_maps virtual_minimum_uid = 2000 virtual_transport = dovecot virtual_uid_maps = mysql:uid_maps
master.conf : (I tried several conf)
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/bin/sudo /usr/lib/dovecot/deliver -d ${recipient} -a ${original_recipient} #flags=DRhu user=vmail: argv=/usr/bin/sudo /usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${recipient} #flags=DRhu user=vmail: argv=/usr/bin/sudo /usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient} #flags=DRhu user=vmail:vmail argv=/usr/bin/sudo /usr/lib/dovecot/deliver -f ${sender} -d ${recipient} -a ${original_recipient}