1 votes

"NO Mailbox doesn't exist" : les problèmes de séparateur dans l'interaction Mail.app-dovecot

Depuis de nombreuses années, je fais tourner un serveur imap dovecot sur localhost, pour stocker mes archives de courrier et y accéder avec n'importe quel client (principalement Mail.app et Thunderbird) et ne pas dépendre du format de stockage de ces applications lorsqu'elles sont mises à jour. Depuis la mise à jour vers Big Sur (MacOS 11.6.5, Mail.app 14.0), les choses fonctionnent dans Thunderbird mais plus dans Mail.app, ce qui a eu pour effet d'augmenter le nombre d'utilisateurs. affiche tous les dossiers (sauf ceux qui sont au sommet de la hiérarchie) comme vide .

Voici ma configuration dovecot :

FZs-MacBook-Pro:~ fz$ doveconf -n
# 2.0.16: /Volumes/Home/FZ/.local/etc/dovecot/dovecot.conf
# OS: Darwin 20.6.0 x86_64  hfs
default_internal_user = fz
default_login_user = fz
log_path = /Volumes/Home/FZ/.local/var/log/dovecot.log
mail_location = maildir:/Volumes/Home/FZ/Mail:LAYOUT=fs
passdb {
  args = username_format=%u /Volumes/Home/FZ/.local/etc/dovecot-users
  driver = passwd-file
}
service anvil {
  chroot = 
}
service imap-login {
  chroot = 
  inet_listener imap {
    port = 10143
  }
  inet_listener imaps {
    port = 10993
  }
}
service pop3-login {
  chroot = 
  inet_listener pop3 {
    port = 10110
  }
  inet_listener pop3s {
    port = 10995
  }
}
ssl = no
userdb {
  args = username_format=%u /Volumes/Home/FZ/.local/etc/dovecot-users
  driver = passwd-file
}

Voici un journal de ce qui se passe lorsque je clique sur le dossier "Topics/Computing/httpd" dans Thunderbird :

FZs-MacBook-Pro:~ fz$ cat imap.log.moz_log | grep 13bbc0000
[Parent 2577: IMAP]: D/IMAP ImapThreadMainLoop entering [this=13bbc0000]
[Parent 2577: Main Thread]: I/IMAP 13bbc0000:localhost:NA:SetupWithUrlCallback: clearing IMAP_CONNECTION_IS_OPEN
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:ProcessCurrentURL: entering
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:ProcessCurrentURL:imap://fz@localhost:10143/select%3E/Topics/Computing/httpd:  = currentUrl
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:CreateNewLineFromSocket: * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:SendData: 18 authenticate PLAIN
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:CreateNewLineFromSocket: + 
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:SendData: Logging suppressed for this command (it probably contained authentication information)
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:NA:CreateNewLineFromSocket: 18 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:SendData: 19 namespace
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * NAMESPACE (("" "/")) NIL NIL
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: 19 OK Namespace completed.
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:SendData: 20 ID ("name" "Thunderbird" "version" "91.9.0")
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * ID NIL
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: 20 OK ID completed.
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:SendData: 21 ENABLE UTF8=ACCEPT
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: 21 OK Enabled.
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:SendData: 22 select "Topics/Computing/httpd"
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent)
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent \*)] Flags permitted.
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * 2 EXISTS
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * 0 RECENT
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * OK [UIDVALIDITY 1325085214] UIDs valid
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * OK [UIDNEXT 3] Predicted next UID
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: * OK [HIGHESTMODSEQ 1] Highest
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:A:CreateNewLineFromSocket: 22 OK [READ-WRITE] Select completed.
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:S-Topics/Computing/httpd:SendData: 23 UID fetch 1:* (FLAGS)
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:S-Topics/Computing/httpd:CreateNewLineFromSocket: * 1 FETCH (UID 1 FLAGS (\Seen $MDNSent))
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:S-Topics/Computing/httpd:CreateNewLineFromSocket: * 2 FETCH (UID 2 FLAGS (\Seen $MDNSent))
[Parent 2577: IMAP]: I/IMAP 13bbc0000:localhost:S-Topics/Computing/httpd:CreateNewLineFromSocket: 23 OK Fetch completed.

Et voici ce qui apparaît dans Connection Doctor > Show Detail lorsque j'essaie la même chose dans Mail.app :

WROTE May 19 18:20:09.706 [kCFStreamSocketSecurityLevelNone] -- host:127.0.0.1 -- port:10143 -- socket:0x600007487420 -- thread:0x6000044c3300
40.372 SELECT Topics.Computing.httpd (CONDSTORE)

READ May 19 18:20:09.707 [kCFStreamSocketSecurityLevelNone] -- host:127.0.0.1 -- port:10143 -- socket:0x600007487420 -- thread:0x6000044c3300
40.372 NO Mailbox doesn't exist: Topics.Computing.httpd

Il semble clair que le problème est que Mail.app demande les sous-dossiers en supposant le séparateur "." au lieu de "/".

Question : Comment faire pour que Mail.app et dovecot communiquent correctement ?

1voto

Consigliere ZARF Points 146

J'ai résolu le problème en déplaçant ~/Bibliothèque/Mail hors du chemin. (Il s'agit du magasin local de Mail.app, pas de celui de dovecot qui se trouve dans ~/Mail.) Au prochain lancement de Mail.app, il a été reconstruit et tous les sous-dossiers ont été miraculeusement remplis dans l'interface, Mail.app prenant maintenant le séparateur correct :

WROTE May 21 03:54:35.783 [kCFStreamSocketSecurityLevelNone] -- host:127.0.0.1 -- port:10143 -- socket:0x6000009e5800 -- thread:0x60000346d1c0
352.5 SELECT Topics/Computing/httpd (CONDSTORE)

READ May 21 03:54:35.784 [kCFStreamSocketSecurityLevelNone] -- host:127.0.0.1 -- port:10143 -- socket:0x6000009e5800 -- thread:0x60000346d1c0
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent \*)] Flags permitted.
* 2 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1325085214] UIDs valid
* OK [UIDNEXT 3] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
352.5 OK [READ-WRITE] Select completed.

WROTE May 21 03:54:35.786 [kCFStreamSocketSecurityLevelNone] -- host:127.0.0.1 -- port:10143 -- socket:0x6000009e5800 -- thread:0x60000346d1c0
353.5 UID FETCH 1:2 (FLAGS UID) (CHANGEDSINCE 1 VANISHED)

READ May 21 03:54:35.787 [kCFStreamSocketSecurityLevelNone] -- host:127.0.0.1 -- port:10143 -- socket:0x6000009e5800 -- thread:0x60000346d1c0
353.5 OK Fetch completed.

Je n'ai aucune idée de la raison pour laquelle cela a fonctionné, si ce n'est pour constater que le séparateur était effectivement mis en cache dans ~/Bibliothèque/Mail :

FZs-MacBook-Pro:~ fz$ tail ~/Library/Mail/V8/6CD652AB-CCEF-45CC-9D6C-FB91888D36B4/.mboxCache.plist 
            <key>MailboxPathComponent</key>
            <string>Trash</string>
            <key>MailboxUnreadCount</key>
            <integer>0</integer>
        </dict>
    </dict>
    <key>separator</key>
    <string>/</string>
</dict>
</plist>
FZs-MacBook-Pro:~ fz$ tail ~/Library/Mail.outoftheway/V8/6CD652AB-CCEF-45CC-9D6C-FB91888D36B4/.mboxCache.plist 
            <key>MailboxPathComponent</key>
            <string>Trash</string>
            <key>MailboxUnreadCount</key>
            <integer>0</integer>
        </dict>
    </dict>
    <key>separator</key>
    <string>.</string>
</dict>
</plist>
FZs-MacBook-Pro:~ fz$

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X