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 :)}
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
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.
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
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.