1 votos

"El buzón NO existe": problemas de separación en la interacción Mail.app-dovecot

Durante muchos años he estado ejecutando un servidor dovecot imap en localhost, para almacenar mi archivo de correo y acceder a él con cualquier cliente (principalmente Mail.app y Thunderbird) y no depender del formato de almacenamiento de esas aplicaciones cuando se actualizan. Desde la actualización a Big Sur (MacOS 11.6.5, Mail.app 14.0) las cosas funcionan en Thunderbird pero ya no en Mail.app, que muestra todas las carpetas (excepto los que están en la cima de la jerarquía) como vacío .

Esta es mi configuración de 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
}

Aquí hay una registro de lo que ocurre cuando hago clic en la carpeta "Temas/Informática/httpd" en 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.

Y esto es lo que aparece en Connection Doctor > Show Detail cuando intento lo mismo en 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

Parece claro que el problema es que Mail.app pide las subcarpetas asumiendo el separador "." en lugar de "/".

Pregunta: ¿Cómo puedo conseguir que Mail.app y dovecot se comuniquen correctamente?

1voto

Consigliere ZARF Puntos 146

Resolví el problema moviendo ~/Library/Mail fuera del camino. (Este es el almacén local de Mail.app, no el de dovecot que está en ~/Mail.) En el siguiente lanzamiento de Mail.app, se reconstruyó y todas las subcarpetas se poblaron milagrosamente en la interfaz, con Mail.app asumiendo ahora el separador correcto:

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.

No tengo ni idea de por qué ha funcionado, aparte de observar que el separador estaba efectivamente en la caché de ~/Library/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$

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X