总结

总结

我的机构最近改组了我们的电子邮件帐户。我不得不将多年来精心整理的电子邮件(比 3 岁孩子的生日聚会还要混乱)从 IMAP account_old 转移到 IMAP account_new,据我所知,两者仅在服务器名称上有所不同。

由于是 IMAP,我的所有邮件除了保存在邮件服务器上外,还保存在本地,因此我认为 Thunderbird 可能允许我创建 IMAP account_new,然后将我的~/.thunderbird个人资料内容推送到 account_new IMAP 服务器上。另请注意,IMAP account_old 现在处于离线状态。

我在 Google 上搜索没有找到关于此方法的任何信息,相反,用户似乎必须费力地复制邮件(通过右键单击文件夹 >复制到>相对/雷鸟/路径),一个文件夹一个文件夹地从一个帐户复制到另一个帐户。我一直这样做,直到我发现,在某个时候,附件无法正确复制(但在我开始这个过程时它们是正确的)。具体来说,附件文件容器被复制了,但内容似乎不存在,因为尝试打开它时返回了错误* 。使用搬去在单个邮件上。现在,我想知道 DavMail(对于我使用的 Exchange 帐户)是否会干扰使用此方法复制附件。

*此附件似乎为空。请与发送者核实。公司防火墙或防病毒程序通常会破坏附件。

我想知道是否有一种更强大且更省力的方法可以将帐户的整个本地内容上传到 IMAP 服务器,并带有完整的树结构和元数据(转发、回复、标签等)?我在 Ubuntu 12.04、64 位、DavMail 4.1.0 上使用 Thunderbird v17.0。

编辑:我明白了imapsync应该可以完成这项工作。对此方法有何评论?例如,元数据和附件是否忠实同步?

答案1

另一种方法是使用同步来自isync 项目。以下是将邮件从一个 IMAP 服务器直接同步到另一个 IMAP 服务器的一些示例配置:

# The IMAP server you wish to copy mails from.
IMAPAccount imap-src-account
Host imap.host.ac.uk
User student0192
# Pass "xxxxx" # if you don't mind storing it in the file; otherwise will prompt
UseIMAPS yes
CertificateFile /etc/ssl/certs/ca-certificates.crt

 # The IMAP server you wish to copy mails to.
IMAPAccount imap-dest-account
Host zimbra.corporate.com
User [email protected]
# Pass "xxxxx" # if you don't mind storing it in the file; otherwise will prompt
UseIMAPS yes
CertificateFile /etc/ssl/certs/ca-certificates.crt

 # Link IMAP server to remote used below
IMAPStore imap-src
Account imap-src-account

IMAPStore imap-dest
Account imap-dest-account

# ensures that dates of messages will be set correctly
CopyArrivalDate yes

Channel transfer
Master :imap-src:
Slave :imap-dest:
# Transfer all folders
Patterns *
Create Slave
Sync Pull
# important otherwise you will get 'Error: store ... does not support in-box sync state'
SyncState ~/.mail/imap-transfer

然后您可以运行mbsync -l transfer列出将要同步的邮件文件夹。

要实际运行传输,请运行mbsync transfer。这样做的好处是您可以定期运行它,并且它将进行高效的同步。

进一步说明:

  • 密码:您还可以指定PassCmd使用其他方法获取密码(例如来自令牌环)。
  • 备份:网上大多数关于 mbsync 的说明都是使用它来备份到本地文件系统。您甚至可以备份到本地文件系统,然后将其推送到新服务器,如这里所述,但如果你只是想同步服务器,那就太复杂了
  • 文件夹映射Slave ":imap-dest:parent-folder/":如果您想将文件夹转移到目标系统中的子文件夹(就像我做的那样),您可以在配置中指定这一点Channel

答案2

2022 年更新,我花了一些时间研究这个问题:

在 Linux Ubuntu 机器上:

    git clone https://git.code.sf.net/p/isync/isync
    cd isync
    sudo apt install autoconf
    ./autogen.sh
    ./configure
    make
    sudo make install

配置文件:nano .mbsyncrc

# ensures that dates of messages will be set correctly
CopyArrivalDate yes

# The IMAP server you wish to copy mails from.
IMAPAccount imap-src-account
Host imap.host.ac.uk
User student0192
Pass "xxxx"
# if you don't mind storing it in the file; otherwise will prompt
#UseIMAPS yes
CertificateFile /etc/ssl/certs/ca-certificates.crt

 # The IMAP server you wish to copy mails to.
IMAPAccount imap-dest-account
Host zimbra.corporate.com
User [email protected]
Pass "xxxx"
# if you don't mind storing it in the file; otherwise will prompt
#UseIMAPS yes
CertificateFile /etc/ssl/certs/ca-certificates.crt

 # Link IMAP server to remote used below
IMAPStore imap-src
Account imap-src-account

IMAPStore imap-dest
Account imap-dest-account

Channel transfer
Far :imap-src:
Near :imap-dest:
# Transfer all folders
Patterns *
Create Near
Sync Pull
# important otherwise you will get 'Error: store ... does not support in-box sync state'
SyncState ~/.mail/imap-transfer

列出文件夹:mbsync -l -c .mbsyncrc transfer

开始传输:mbsync -c .mbsyncrc transfer

每次迁移后删除带有备份 ~/.mail 的文件夹,除非你想保留它

答案3

Imapsync 是一个用于进行 imap 同步的工具,它可以同步:

  • 整个文件夹层次结构。文件夹映射可以更改。
  • 所有邮件、附件均按原样同步。可以按日期/大小选择邮件。
  • 所有标志,至少是目标服务器启用的所有标志。

Imapsync 允许增量同步(我称之为预同步),以备份或加速最终同步;它根据测量的消息传输速率估计 ETA。作者 Gilles Lamiral 以 50 欧元的价格出售它,但它可以在 github 上免费获得。

答案4

总结

修复文件夹。PD:信息没有丢失。它就在那里。

语境

我很害怕这种事情发生在我身上。我发现这个问题是因为我开始将我与旅行社客户的电子邮件“复制”到一个临时帐户中,然后将它们导入数据库,以便自动处理到自定义 CRM 中……而丢失客户的附件是不可能的。

This attachment appears to be empty. Please check with the person who sent this. Often company firewalls or antivirus programs will destroy attachments.我删除了原始消息后又收到了该消息,我对这种情况感到非常害怕。

我真的非常害怕失去这些附件。

所以我想澄清的第一件事是:

关键问题:Thunderbird 复制电子邮件时会丢失信息吗?还是它只是复制了信息,但后来无法读取?

  • 如果雷鸟丢失了信息,那就彻底麻烦了。
  • 如果只是无法读取,那就没问题。

我做了什么来解决我的关键问题

a) 我首先查看了该消息的源代码。它确实有“一些”内容。边界,然后是附加文件。

电子邮件的源代码

我仍然不知道内容是否正确或损坏。

b) 我将电子邮件保存到桌面,双击它并使用 thunderbird 从桌面加载它来打开它。

c) 然后我右键点击保存附件。附件保存后我打开它(在这种情况下它是一个 Excel 文件),Excel 成功打开了它。因此,第一个结论是:附件中的信息没有丢失

d) 然后我直接从电子邮件窗口打开了附件(再次强调:不是从 IMAP 打开,只是在 thunderbird 中查看.eml桌面上的文件),并且它正确打开了。因此,第二个结论是:消息来源没有破坏双击打开附件的信息

答案(对我有用的)

我随后得出结论,信息并没有丢失(很可能最终的 IMAP 源代码是原始源代码的逐字节副本),因此问题必然出在再次读取/解释消息上。

但是雷鸟有时需要一点帮助。它“缓存”一些数据以避免每次都连接到 IMAP 服务器,但我不知道出于什么原因,这些信息有时可能会被破坏。

有一种方法可以解决这个问题:

1)右键单击您的文件夹,然后在有问题的文件夹上选择“属性”。

选择属性

2) 选择“修复”。这将使缓存的邮件元数据失效,因此会强制重新下载包含邮件标题和正文的源代码文件。重新诠释内容本身。

修复文件夹

它对我有用。现在我选择同一条消息,打开附件,却再也收不到该This attachment appears to be empty.消息。

希望可以帮到你!

相关内容