我已经将一台服务器上 10 个帐户的所有电子邮件移至另一台服务器。我使用 IMAP,因此这对我而言不会成为问题,但使用这些电子邮件帐户的其他人使用 pop3。当我更改他们计算机上的设置时,Thunderbird(我假设)将下载服务器的所有邮件,即使这些邮件已在他们的计算机上。
有没有办法强制 Thunderbird 只下载(例如)今天的电子邮件以及在服务器上留言?我们已经选中了“在服务器上留言”,但我们不想下载今天之前发送的 10,000 多封电子邮件。
答案1
文件\Data\profile\Mail\pop.[mailserver].[domain]\popstate.dat
用于跟踪已从 POP 服务器下载的电子邮件。
我的 Windows XP Home PC 上的一个示例是:
C:\Documents and Settings\Alan\Application Data\Thunderbird\Profiles\qn5qd3de.default\Mail\pop.att.yahoo.com\popstate.dat
# POP3 State File
# This is a generated file! Do not edit.
*pop.att.yahoo.com AWehmann
k AHfVimIAAFFZTwJOOAAQHz0XYU8 1325822549
k ALnPjkQAARslTk0SJwOBFFSXUwk 1313674828
k ALbPjkQAADijSiRISQK9whTL178 1243891806
k AK/VimIAAXI5TwSSMQM8WDKNut0 1325822555
k ALDVimIAASYOTuZNwgVwMgSXZN4 1323792415
k AN7VimIAAM1uT0ZHUA1JGhbBzms 1330020393
b AODVimIAAQzKTuDXaAISoH6BC8M 1323402949
还有更多条目,但我不会全部显示出来。
第 2 列包含电子邮件 ID,第 3 列包含 unixtime 格式的电子邮件日期(使用一个工具转换为人类可读或转回)。
通过删除相应的行,您可以让 Thunderbird 重新下载这些电子邮件。
对于您而言,由于 Thunderbird 已经拥有 ID,因此它不应重新下载这些电子邮件。
对于 Gmail 来说,情况有些不同。在默认设置下,Gmail POP 服务器仅提供新收到的电子邮件。如果没有新收到的电子邮件,则 popstate.dat 文件将被清空,因为服务器报告没有可从服务器下载的电子邮件。
答案2
如果服务器端的后端格式保持不变(例如 Maildir -> Maildir),那么您的 IMAP 客户端以及 POP 客户端可能不会太在意,只要您只是在帐户设置中更改主机名即可。
但是,如果您更改了后端格式或进行了任何类型的转换(例如,您从带有 courier db 后端的 Courier IMAP 转换为带有 Maildir 后端的 dovecot),那么在许多情况下,您的 IMAP 和 POP 客户端都将重新下载所有邮件(或标头,如果为 IMAP 客户端配置了)。有转换脚本(例如这我尝试了两个方法(一个用于 cyrus -> dovecot 迁移),它们保存了消息 ID,以防止迁移后重新下载,但即使这样对我来说也不起作用,IMAP 客户端重新下载了所有的标头。