Postfix + Dovecot - não está recebendo e-mails no diretório do vmail

1

Eu tenho passado incontáveis horas com isso e agora eu pensei que viria à internet para pedir ajuda.

Eu instalei uma nova instalação do postfix + dovecot + mysql.

Neste momento, posso receber e-mails da minha conta mapeada '[email protected]' mas por alguma razão todas as mensagens são inseridas em / var / mail / sean

a localização esperada é: /var/vmail/domain.com/sean

lista mal as peças-chave do código que eu usei para fazer isso funcionar.

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'

E isso faz parte da configuração do que estou tentando fazer.

Alguma idéia do que estou fazendo errado? {Eu deveria estar careca a essa hora amanhã :)}

    
por Sean 25.09.2012 / 06:18

4 respostas

1

Acho que você está confundindo duas categorias de usuários. Existem os SystemUsers e os VirtualUSers.

Se você tentar usar um systemuser só precisa adicionar esta linha:

mailbox_command = /usr/local/libexec/dovecot/deliver
#  or
mailbox_command = /usr/libexec/dovecot/deliver
#  or
mailbox_command = /usr/lib/dovecot/deliver
#  or wherever it was installed in your system.

Se você está tentando usar um virtualusers, você tem que configurá-los no postfix também.

Algo parecido com isto: obs: Vou tentar usar o seu mysql confs, mas não vou conseguir acertar.

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

Conteúdo:

user=mail
password=P@ssw0rd
dbname=mail
hosts=localhost
query=select username as address from mailbox where active = '1' and username = '%s';

Olha, posso estar faltando alguma coisa sobre sua consulta.

Agora o postfix é capaz de conhecer o seu virtualuser

Precisa mapear agora.

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

Eu iria para usuários virtuais, melhor para gerenciar um banco de dados do que usuários do sistema.

Você também pode criar domínios virtuais e alias virtuais

Mesma lógica e o conf é assim:

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

Eu acho que é. Se precisar de mais ajuda, acho que você pode encontrar em

Wiki da Dovecot

    
por Henrique Fernandes 14.02.2013 / 16:54
1

Eu também tive esse problema e levei algum tempo para me aprofundar. Se alguém tiver isso, vale a pena verificar /var/log/mail.log para erros como:

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

Acabei de remover localdomain.co.uk do mydestination = line no arquivo /etc/postfix/main.cf . Isso parece ter resolvido o problema.

    
por Tomek S 19.08.2018 / 00:31
0

teve o mesmo problema. depois de uma semana de noites, descobriu que você pode precisar criar a pasta INBOX em /home/username/mail/.imap/INBOX.

Isso fez o truque para mim.

O sistema é roundcube / dovecot / postfix / mysql / centos 6.4 Espero que eu possa poupar a sanidade de alguns!

Paulo.

    
por paul 17.02.2014 / 11:02
0

O problema no seu arquivo "virtual_mailbox_map.cnf" (pode ter um nome diferente) deveria ser algo assim

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

A correção em uma consulta porque em todos os manuais que eu vi eles usam algo parecido com isto

query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
    
por emposha 25.02.2014 / 00:16