J'ai récemment mis en place un tout nouveau serveur de messagerie utilisant Dovecot et Postfix, qui envoie et reçoit correctement le courrier, avec le /var/mail/
boîte aux lettres d'annuaire.
Voici le problème: le courrier n'est pas visible via l'interface Webmail Roundcube, mais le courrier est facilement accessible en utilisant mutt
et en regardant simplement votre /var/mail
dossier.
Voici où cela se passe mal, IMAP ne montre pas qu'il y a quelque chose dans la boîte de réception de l'utilisateur, même si tout le reste fonctionne.
Test IMAP:
robo@some-server:~$ telnet localhost imap
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot (Ubuntu) ready.
a1 LOGIN robo yetanotherrandompasswordtofoolyou
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 SPECIAL-USE BINARY MOVE] Logged in
a2 LIST "" "*"
* LIST (\HasNoChildren \Sent) "." Sent
* LIST (\HasNoChildren) "." INBOX
a2 OK List completed.
a3 EXAMINE INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1431224194] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [NOMODSEQ] No permanent modsequences
a3 OK [READ-ONLY] Examine completed (0.000 secs).
a4 FETCH 1 BODY[]
a4 BAD Error in IMAP command FETCH: Invalid messageset
En même temps, il y a exactement un message dans /var/mail/robo
récemment reçu.
Trouvé le problème:
Dovecot IMAP n'avait pas été configuré pour utiliser le format de messagerie mbox
, qui pouvait simplement être corrigé en ajoutant la ligne suivante à mon /etc/dovecot/dovecot.conf
:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Dans laquelle le mail_location
n'avait pas été spécifié précédemment.