web-dev-qa-db-fra.com

Postfix + Dovecot - ne pas recevoir de courrier dans le répertoire vmail

j'ai passé d'innombrables heures à ce sujet et maintenant, je pensais que je pouvais venir sur Internet pour obtenir de l'aide.

J'ai installé une nouvelle installation de postfix + dovecot + mysql.

Actuellement, je peux recevoir des emails de mon compte mappé '[email protected]' mais pour une raison quelconque, tous les messages sont insérés dans/var/mail/sean

l'emplacement prévu est: /var/vmail/domain.com/sean

ill lister les éléments clés de code que ive a utilisés pour que cela fonctionne.

postfix master.cf

dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}

postfix main.cf

virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Dovecot 10-mail.conf

mail_location = maildir:/var/vmail/%d/%n
mail_uid = vmail
mail_gid = mail
first_valid_uid = 150
last_valid_uid = 150

Dovecot 10-auth.conf

disable_plaintext_auth = yes
!include auth-sql.conf.ext

Dovecot auth-sql.conf.ext

passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}

Dovecot dovecot-sql.conf.ext

driver = mysql
connect = Host=localhost dbname=mail user=mail password=P@ssw0rd
default_pass_scheme = MD5-CRYPT

password_query = \
SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, \
'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid \
FROM mailbox WHERE username = '%u' AND active = '1'

user_query = \
SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, \
150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota \
FROM mailbox WHERE username = '%u' AND active = '1'

Et cela le fait quasiment pour la partie configuration de ce que j'essaie de faire.

Des idées sur ce que je fais mal? {Je devrais être chauve demain demain à cette heure :)}

1
Sean

Je suppose que vous confondez deux catégories d'utilisateurs. Il y a les SystemUsers et les VirtualUSers.

Si vous essayez d'utiliser un utilisateur système, il vous suffit d'ajouter cette ligne:

 mailbox_command = /usr/local/libexec/dovecot/deliver
# ou 
 mailbox_command = /usr/libexec/dovecot/deliver
# ou 
 mailbox_command = /usr/lib/dovecot/deliver
# ou n’importe où il a été installé sur votre système. 

Si vous essayez d'utiliser un utilisateur virtuel, vous devez également le configurer sur postfix.

Quelque chose comme ça: obs: je vais essayer d'utiliser vos confs mysql, mais pas si je vais bien faire les choses.

/etc/postfix/virtual-address-mysql.cf 

Contenu:

 utilisateur = mail 
 mot de passe = P @ ssw0rd 
 nombase = mail 
 hôtes = localhost 
 query = choisir le nom d'utilisateur comme adresse de la boîte aux lettres où active = '1' et nom d'utilisateur = '% s'; 

Regardez, il se peut que je manque quelque chose à propos de votre requête.

Maintenant, postfix est capable de connaître votre utilisateur virtuel

Besoin de le cartographier maintenant.

 proxy_read_maps = $ local_recipient_maps $ mydestination $ virtual_alias_maps $ virtual_mailbox_maps $ virtual_mailbox_domains 
 virtual_mailbox_maps = proxy: mysql: /etc/postfix/virtual-address-mysql.cf.

Je voudrais aller aux utilisateurs virtuels, mieux pour gérer une base de données que les utilisateurs du système.

Vous pouvez aussi faire des domaines virtuels et des alias virtuels

Même logique et la conf est comme ça:

 virtual_mailbox_domains = proxy: mysql: /etc/postfix/vdomains.cf 
 virtual_alias_maps = proxy: mysql: /etc/postfix/virtual-alias.cf 

Je suppose que c'est. Si besoin de plus d'aide, je suppose que vous pouvez trouver dans

Wiki Dovecot

1
Henrique Fernandes

J'ai également eu ce problème et cela m'a pris un peu de temps pour creuser dedans. Si quelqu'un en a un, ça vaut la peine de vérifier /var/log/mail.log pour des erreurs telles que:

postfix/trivial-rewrite[2149]: warning: do not list domain localdomain.co.uk in BOTH mydestination and virtual_mailbox_domains

Je viens de supprimer localdomain.co.uk du mydestination = line du fichier /etc/postfix/main.cf. Cela semble avoir résolu le problème.

1
Tomek S

Le problème dans votre fichier "virtual_mailbox_map.cnf" (peut avoir un nom différent) devrait ressembler à ceci:

hosts = 127.0.0.1
user = postfix
password = password
dbname = postfix
query = SELECT CONCAT(domain, '/', maildir) FROM mailbox WHERE username='%s' AND active = 1

Le correctif dans une requête parce que dans tous les manuels que j'ai vus, ils utilisent quelque chose comme ça

query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
0
emposha

eu le même problème. après une semaine de nuits, vous avez peut-être besoin de créer le dossier INBOX sous /home/username/mail/.imap/INBOX.

Cela a fait le tour pour moi.

Le système est roundcube/dovecot/postfix/mysql/centos 6.4 J'espère pouvoir en épargner quelques-uns!

Paul.

0
paul