常见相关问题:
我无法删除 Mozilla Thunderbird 中的任何消息
Thunderbird 中的垃圾箱不见了,导致无法删除任何消息
答案1
这里有一些解决丢失系统文件夹问题的解决方案,特别是垃圾箱(您无法直接从 Thunderbird 重新创建),导致完全无法删除任何消息(通常是您会注意到的)。
我在这里发帖是因为这种特定情况通常在本地文件夹的答案中被忽略,请检查下面的不同情况。
一、原因:
除了可能的迁移问题之外,大多数情况下,检查防病毒隔离区应该会显示一些最近消除的威胁。通常,Thunderbird 会将它们发送到“垃圾邮件”文件夹,如果里面没有重要的东西,您通常会立即清空该文件夹,因此有害邮件最终会被放入垃圾箱。
但是,虽然防病毒软件在 Thunderbird 打开时无法执行任何操作,但它会在您关闭它后立即尝试消灭它们。
问题是,这些文件夹不是真正的文件夹,而是普通文件,这意味着防病毒软件无法执行选择性清理:它将完全删除文件本身。
这就暴露了,除了恢复隔离区(可能只建议在真正重要的文件夹被删除的情况下)之外,这里是如何重建丢失的垃圾箱的方法。
首先,您必须打开 Thunderbird 存储您的整个电子邮件帐户数据的文件夹。
为了简短起见,请阅读:Thunderbird 中的文件夹图标配置在哪里?
现在请关闭 Thunderbird,因为在其运行时您无法触摸任何东西。
现在检查文件夹内容。
您将看到与您的各种电子邮件帐户名称相匹配的文件夹集合,以及“本地文件夹”。
现在我们来解释一下。
0) 如果您的某些电子邮件帐户是 IMAP,那么您的邮箱实际上保存在提供商的服务器上,您在 Thunderbird 中看到的文件夹只是镜像链接。有一些解决方案可以重建它们,通常是通过右键单击菜单,将它们同步回来。本主题与此案例无关。
1) 如果您的某些电子邮件帐户是 POP3,那么您实际上是在检索存储在提供商服务器上的电子邮件副本,并将其存储在您自己的 PC(或本地域服务器)上。
不过,也可能存在两种不同的情况。
2.1) 本地垃圾箱可能位于每个(或部分)帐户文件夹内。当您从头创建帐户时,这种情况更常见。
或者
2.2) 您正在共享位于“本地文件夹”文件夹内的公共垃圾箱(尽管一旦它消失,您可能不记得确切情况 ^^ LOL)。当您从 MS Outlook 迁移时通常会出现这种情况,或者几乎总是从 Outlook Express 或 Windows Live Mail 迁移时会出现这种情况。
好的,以下是针对这两种情况的解决方案。
实际上,你应该在网上找到很多关于第一种情况的解决方案,但没有关于第二种情况的解决方案。它们实际上很相似,如下所示:
2.1) 如果每个电子邮件帐户文件夹内都有单独的垃圾箱,请打开相应的文件夹。现在按照下面的“解决方案”步骤进行操作。
2.2) 如果您的“本地文件夹”文件夹中有一个公共垃圾箱,那么当然要打开“本地文件夹”。:)
现在您可以尝试以下步骤:
解决方案 :
S2.1) 如果存在“Trash”和“Trash.msf”文件,则尝试删除“Trash.msf”文件,然后启动 Thunderbid。它应该会修复索引和垃圾箱。
S2.2.1) 如果不存在,则:
或者
S2.2.2) 如果仍然不起作用,则首先删除这两个文件,然后:
S2.2.3.1) 从另一个完整的文件夹复制它们,
或者
S2.2.3.2) 只需创建新的空白的:
首先,确保您没有在浏览器选项中隐藏文件扩展名。您必须知道您正在操作什么,并且您必须能够创建具有确切名称的文件,而不会让 Windows 在其后附加隐藏的“.txt”,否则这些文件将无法正常工作”
创建一对空文本文件。只需创建它们,不要在其中输入任何内容,然后更改它们的名称:一个文件将命名为“Trash”,另一个文件将命名为“Trash.msf”。它们的大小必须保持为“0”。
现在重新启动 Thunderbird。任务完成。
重要提示:您在这些文件夹中看不到任何“垃圾”或“Trash.msf”绝不意味着这是正常的。实际上,这意味着这就是您遇到问题的根本原因。是的,无论您是否使用公共垃圾箱,所有文件夹(包括“本地文件夹”)都绝对应该始终包含这些文件。
这正是解决方案中通常被忽略的部分,也是我在这里发布信息以便每个人都能找到适合每种情况的帮助的原因。
答案2
如果无法在 Thunderbird 中删除消息,则需要手动删除所有“垃圾”文件和目录,并将其重新创建为空白文件。
一个自动执行此作业的 BATch 文件(它基于 Z80 的解决方案 S2.2.3.2。感谢 Z80!):
cd /d ThunderbirdProfileFolder
for /f "delims=" %%a in ('dir /s /b *trash*') do (rd /s /q "%%a" || del /s /f /q "%%a")
for /f "delims=" %%a in ('dir /s /b /ad') do type nul > %%a\Trash
for /f "delims=" %%a in ('dir /s /b /ad') do type nul > %%a\Trash.msf
pause