Dovecot 不通过 IMAP 提供所有消息

Dovecot 不通过 IMAP 提供所有消息

我有一个 Debian / Dovecot / Postfix 标准设置。此外,我还运行 notmuchmail 索引器来快速搜索消息。作为邮件客户端,我在 Windows 上使用 emClient,我还运行了 Rainloop Webmail。

我使用 notmuchmail 搜索了一条特定的消息,找到了它,大约 5 年前收到的。当我使用 emClient 检查时,这些消息的日期只追溯到 3 年半前。起初我怀疑 emClient 没有下载所有消息,但随后,使用 Rainloop 检查时,我还看到通过 IMAP 可见的最旧消息是 3 年半前的消息。

搜索问题后,建议通过删除我的 Maildir 中的 dovecot-uidlist 来重新同步邮件客户端(https://www.dovecot.org/list/dovecot/2013-October/092803.html),我确实这么做了。emClient 相应地重新同步了所有消息,但没有任何变化,最早的消息已有 3 年半了。

所以现在我很困惑...我还能做些什么来通过 IMAP 访问我的所有邮件吗?我的服务器正在运行 Dovecot 2.2.13。

输出“dovecot -n”

# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.9
login_trusted_networks = 192.168.1.0/24
mail_location = maildir:~/Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
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 =
  separator = /
}
passdb {
  driver = pam
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = " imap sieve"
quota_full_tempfail = yes
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = username
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
ssl = required
ssl_cert = </etc/letsencrypt/live/a.b.com/fullchain.pem
ssl_cipher_list = AES128+EECDH:AES128+EDH
ssl_dh_parameters_length = 2048
ssl_key = </etc/letsencrypt/live/a.b.com/privkey.pem
ssl_protocols = !SSLv2 !SSLv3
userdb {
  driver = passwd
}
protocol lda {
  info_log_path =
  log_path =
  mail_plugins = " sieve"
}

答案1

索引损坏和其他邮箱问题

这听起来像是邮箱索引损坏的问题,Dovecot 通常非常擅长自行修复。如果失败,您可以使用以下命令强制 Dovecot 修复索引和其他问题

doveadm force-resync -u <username> <mailbox>

如果用户johndoe的收件箱中没有显示邮件,则命令为

doveadm force-resync -u johndoe INBOX

运行doveadm -Dv force-resync ...(调试和详细输出)可能会对任何问题提供更多见解。

客户端问题

在极少数情况下,邮件客户端可能会因本地数据不一致而受到影响,尤其是当由于邮箱问题而在服务器端重新编号邮件时。一些邮件客户端有“修复”功能,其他则可能需要您删除并重新创建邮箱,从而触发完全同步。

相关内容