Como posso obter o dovecot para recuperar meu email?

0

Estou configurando um servidor de e-mail para meu domínio pessoal. Haverá apenas um usuário (eu). Estou executando um VPS DigitalOcean no Arch, tudo está atualizado até ontem.

Tenho o postfix instalado e em execução: quando você envia um e-mail para meu novo endereço, ele é armazenado em /var/spool/mail/richard .

Meu problema é com o dovecot. Aqui está uma transcrição da minha interação com ele via telnet :

$ telnet microbug.uk imap
Trying 46.101.26.207...
Connected to microbug.uk.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
a1 login richard [password]
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
a2 list "" "*"
* LIST () "." INBOX
a2 NO [SERVERBUG] Internal error occurred. Refer to server log for more information. [2015-06-16 20:58:30] (0.002 secs).

systemctl status dovecot revela que o dovecot quer que /var/spool/mail/richard seja um diretório (?!):

$ systemctl status dovecot
* dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2015-06-16 19:23:18 UTC; 1h 40min ago
 Main PID: 739 (dovecot)
   CGroup: /system.slice/dovecot.service
           |- 739 /usr/bin/dovecot -F
           |- 740 dovecot/anvil
           |-1396 dovecot/log
           '-1423 dovecot/imap

Jun 16 20:47:20 server dovecot[1360]: imap-login: Login: user=<richard>, method=PLAIN, rip=86.6.26.155, lip=46.101.26.207, mpid=1365, session=<ezk7rqgYLQBWBhqb>
Jun 16 20:50:41 server dovecot[739]: master: Warning: SIGHUP received - reloading configuration
Jun 16 20:50:41 server dovecot[1360]: imap(richard): Server shutting down. in=52 out=1059
Jun 16 20:50:49 server dovecot[1396]: imap-login: Login: user=<richard>, method=PLAIN, rip=86.6.26.155, lip=46.101.26.207, mpid=1401, session=<0kquuqgYWwBWBhqb>
Jun 16 20:53:31 server dovecot[1396]: imap(richard): Error: opendir(/var/spool/mail/richard) failed: Not a directory
Jun 16 20:53:31 server dovecot[1396]: imap(richard): Error: opendir(/var/spool/mail/richard) failed: Not a directory
Jun 16 20:58:04 server dovecot[1396]: imap(richard): Connection closed in=87 out=1077
Jun 16 20:58:23 server dovecot[1396]: imap-login: Login: user=<richard>, method=PLAIN, rip=86.6.26.155, lip=46.101.26.207, mpid=1423, session=<K2y+1agY/QBWBhqb>
Jun 16 20:58:30 server dovecot[1396]: imap(richard): Error: opendir(/var/spool/mail/richard) failed: Not a directory
Jun 16 20:58:30 server dovecot[1396]: imap(richard): Error: opendir(/var/spool/mail/richard) failed: Not a directory

Fazendo /var/spool/mail/richard um diretório parar o dovecot reclamando ... mas o postfix não pode entregar mensagens.

postconf -n (configurações de postfix diferentes do padrão):

alias_database = $alias_maps
alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/bin
compatibility_level = 2
daemon_directory = /usr/lib/postfix/bin
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_protocols = ipv4
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
meta_directory = /etc/postfix
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
myhostname = microbug.uk
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
notify_classes = bounce, data, delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix
sample_directory = /etc/postfix
sendmail_path = /usr/bin/sendmail
setgid_group = postdrop
shlib_directory = /usr/lib/postfix
unknown_local_recipient_reject_code = 550

doveconf -n (configurações dovecot que são diferentes do padrão):

# 2.2.18: /etc/dovecot/dovecot.conf
# OS: Linux 4.0.5-1-ARCH x86_64  ext4
disable_plaintext_auth = no
mail_location = maildir:/var/spool/mail/%u
mail_temp_dir = /
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 = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
protocols = imap
ssl = no
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}

Qualquer ajuda seria muito apreciada! Eu posso postar configurações adicionais conforme necessário.

EDIT: arquivos de configuração adicionados

(Eu sei que esta configuração é insegura, mas quando está trabalhando eu adiciono SSL)

    
por microbug 16.06.2015 / 23:13

1 resposta

1

O postfix está sendo enviado para um arquivo de caixa de correio em vez de um Maildir.

Tente algo assim em Dovecot:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Como alternativa, configure o postfix para entregar em um Maildir com um comando como:

sudo postconf -e "home_mailbox = Maildir/"

E configure o Dovecot para usar um Maildir, especificando:

mail_location = maildir:~/Maildir

Verifique a documentação da Dovecot se você quiser misturar o Maildir para pastas e o formato mbox para sua caixa de entrada.

    
por 17.06.2015 / 07:00