轻松解决无法删除邮件的问题

今天同事又报告说,Outlook Express无法把几封发件箱里的邮件删除。

有了上次解决发信后邮件滞留发件箱的经验以后,这个问题对我来说就很简单,我不再徒劳地在发件箱里找原因。我首先看了一下已删除邮件文件夹,好几千封信,这些同事都把垃圾邮件仍当宝贝一样收藏着。已删除邮件.dbx已有2Gb,看来到了不稳定的临界点。

我说,既然是已删除邮件,就定期清空嘛。

同事说,好。

我说,那现在我帮你清啦?

同事又说,好。

于是,彻底清空已删除邮件。无法删除邮件的问题立马解决。

Outlook Express强于Outlook之处

很久以前就有人说过,如果只是用来收发邮件,Outlook Express足以。

但Outlook Express和Outlook,从名称上总给我感觉Outlook Express是Outlook的缩水版,即使是邮件方面,只有Outlook能做到而Outlook Express做不到的,没有Outlook Express能做到而Outlook做不到的。

但经过一段时间的“Outlook”以后,我深刻体会到前人说的话是对的。先不提Outlook Express的稳定性,我就发现一个Outlook Express能做到而Outlook做不到的邮件功能:

以IMAP协议访问邮箱时,发送邮件后,Outlook Express能把邮件deliver到自己邮箱的已发送邮件( Or, Sent Mail, whatever they call it),而Outlook仅保留在本地的已发送邮件文件夹。这样,IMAP协议的优势在Outlook就没有得到充分体现。

邮件发送后滞留在发件箱的解决办法

办法很简单:清空已发送邮件。

我曾为邮件发送后滞留在发件箱的问题辗转反复,说来话长。

我办公室有一台专门的电脑处理印刷稿件,每天收发好多超大邮件,邮件程序是Outlook Express,邮件带的附件大多是高分辨率的PDF或JPEG等文件。每隔若干天,同事就会找我帮忙:Outlook Express发信出现问题,邮件明明已经发出去了,对方也收到了,但邮件就是卡在发件箱里,Outlook Express错误提示是一项或多项操作未完成,但没有更多的原因说明。其实在同事发现Outlook Express工作不正常之前,发件箱里已经堆积了很多邮件,这些邮件都已经发送了N份copies给收件人。

发件箱出现这种症状是随机的,也搞不清楚是什么诱发了发件滞留,有时一个不带附件的小邮件也会诱发发件滞留发件箱,但一般来说带附件的大邮件更容易导致发件出错。我以前判断是发件箱有毛病,因此用不同的方法去重建发件箱。我至少尝试了以下方法来解决问题,因为任何一个方法并不总是灵光,其效力也是随机的。

压缩所有文件夹(尽管矛头指向发件箱,但压缩一下所有的文件夹也无妨)

  • 导出邮件后再导入回来
  • 删除发件箱.dbx(Outlook Express启动时会新建一个发件箱.dbx,如果检测到发件箱.dbx不存在的话)
  • 干脆在Windows下创建一个新用户,再导入邮件
  • 重装Outlook Express后导入邮件

以上方法都只能工作一段时间。我按“Outlook Express发信出错”、“Outlook Express发件箱不能清空”等关键词搜索前人一劳永逸的办法,搜到很多的IT网站和论坛相关讨论,但那些IT高手们也说他们也有同样的问题,也用同样的方法,也只能一时有效。我也只好将就,对同事的求助习以为常,用临时方法解决发件箱问题。

昨天同事又来找我。我按老规矩把老方法一一试来,在等导入邮件的操作完成时,我突然来了灵感:我为什么总认为是发件箱出问题了呢?为什么不能是已发送邮件出问题呢? 我的演绎是:

当已发送邮件越积越大时,Outlook Express的某个臭虫导致Outlook Express无法稳定地把一封已发出的邮件添加到已发送邮件文件夹。不稳定性导致症状出现的随机性。邮件实际已投递,但由于不能成功添加到已发送邮件,就只好滞留发件箱了,错误提示说一项或多项操作未完成,其实是指最后一步没完成——一切都自圆其说了。

那台电脑的已发送邮件.dbx有3G大,我将它重命名为旧已发送邮件.dbx,然后删除了已发送邮件.bak,发件箱症状立马就消失了。称之为发件箱症状其实也不准确,应该叫已发送邮件症状。我相信我的办法可以永久地解决问题。

回想起来,我也曾造访过微软的网站寻求帮助,微软知识库里至少有三篇文章是讲发件箱问题的,但现在看来,这些都是“头痛医脚”。我不指望我的办法能被微软收录,但我确实希望这篇文章能在google关于“邮件滞留发件箱”类别的搜索结果中能排个好名,为众多的Outlook Express迷途者指点迷津。

顺便说一下,看别人的类似求助,似乎Outlook也有“邮件滞留发件箱”问题,我相信清空已发送邮件的办法同样适用于Outlook。

Solution to Emails Delivered but Stuck in Outbox

The solution is very simple: empty the folder Sent Items.

It is a long story of getting to the solution. If interested, please read on.

In my office a dedicated artwork processing workstation receives and sends tons of emails everyday. The email program installed is Outlook Express. Artwork attachments are normally high resolution PDFs, JPEGs, etc. Every a few days my colleague asks me to examine this workstation when the symptom comes – emails stay in Outbox after sending, and an error message will popup saying one or more tasks are not completed but not giving details and possible reasons. Actually emails have been delivered many times before my colleague notes the problem.

The Outbox symptom occurs quite randomly. Sometimes even a small email without attachments could incur the problem, but big emails with attachments are more likely to replicate the problem. My previous approaches were focused on rebuilding a new Outbox. I have tried at least the following methods, none of them always work.The effectiveness is random as well.

  • Compact all the folds in Outlook Express
  • Export and import emails
  • Delete Outbox.dbx (Outlook Express will automatically create a new one when it detect Outbox.dbx does not exist)
  • Create new Windows user and import emails
  • Reinstall Outlook Express and import emails

But all of the above methods could only work for a while. I researched many IT forums. Lots of gurus mention that they face the similar problem and use the above temporary methods. So I had been used to being called for help once in a while.

Today I was called again. While trying my old methods one by one to see if any of these temporarily solve Outbox Symptom, I suddenly had some afflatus. Why I thought Outbox was wrong? I always used “outlook express outbox stuck”, “outlook express outbox stuck” as search terms. It could be Sent Items. My deduction is –

When Sent Items.dbx is getting bigger and bigger, some bugs in Outlook Express make Outlook Express not able to handle reliably a new Sent Item appending to Sent Items.dbx. That is why the Outbox Symptom happens randomly. The email is already sent but because it can not go to Sent Items, it has to stay in Outbox.

Sent Items.dbx on artwork workstation is 3 gigabyte huge. I renamed Sent Items.dbx to Old Sent Items.dbx and deleted Sent Items.bak. Instantly Outbox Symptom was gone. Now I know it is not appropriate to be called as Outbox Symptom. It is Sent Items Symptom. I believe my new solution will be permanent.

Looking backwards, even 3 articles (E-mail does not leave the Outbox, How to troubleshoot mail stuck in the Outbox in Outlook 2000, Error message that Sent Items remain in Outbox) I found from Microsoft knowledge base regarding this Outbox Symptom or Sent Items Symptom whatever did not help much. I do not expect my solution would be collected by Microsoft knowledge base, but I do expect this post can be ranked on top in google “outbox stuck” related search result, helping as many people as possible solving a very simple problem.

Insert a Signature in Outlook

It is very difficult to think in others’ shoes.

I have been using Outlook Express for years, and it works perfect as an email program. Recently I switched to Outlook because I really want to integrate Calendar, To-do list these sort of information.

However, integration can not happen overnight. Outlook still works mainly as an email program. That is to say, I have not enjoyed the extra benefits from Outlook apart from Outlook Express. When Outlook is working as a replacement of Outlook Express, I have encountered difficulties just because I am thinking in Outlook Express.

For example, how to insert a signature in Outlook? Following Outlook Express’ philosophy, I went to Insert menu and looking for a menu item called signature. No gain. Then I hovered my mouse over every button in toolbars. No gain, either. It seemed no intuitive way to insert a signature, so I turned to Help for help. Now I understand possibly for Office Automation reasons, it is not possible to insert a signature manually. If I want my signature shown in my outgoing emails, I must preset before composing email.

3 steps to achieve that:

  1. Make up signatures.
  2. In the main window of Outlook, Tools > Options > Mail Format Dialogue, choose signature for new messages, choose signature for replies and forwards. Choose none if you do not want any signature to be inserted.
  3. Start composing email. Every email will be inserted a default signature if you choose to do so at step 2, otherwise, there is no possibility to insert a signature later after composing has started. However, you can change signatures by right click on the default signature.

Am I thinking in Outlook’s developers’ shoes? Absolutely not.

Outlook Express不能正常发信

同事的一台计算机发送带附件的邮件时,进行到100%以后,会出现一个错误,对话框中没有错误号,也没有错误描述,但确实有错误,那邮件滞留在outbox里,不肯移到sent items(但邮件能发送出去,对方能收到)。
对这种莫名其妙的错误,我通常不会去找原因(windows的老年病,也不太可能找到原因),也不会去医治它(太费时间)。既然outlook express发不了邮件,换个软件发不就可以了?各种邮件软件都用一遍,如果全染病了,那只有整个windows重装一下。

可是,我们另外有个contact management system叫Act,虽然act工作起来错误百出,但新系统还没调试完成,Act还得继续工作,而Act非得跟outlook express才能一起工作,这样就逼得我只有医好outlook express不能发送带附件邮件的毛病(如果不想重装windows的话)。

因为实在不知道毛病在哪里,我只好乱试一通:

  1. delete outbox.dbx,outlook express启动时会自动重建一个outbox.dbx – 毛病依旧;
  2. 移动outlook express的存储目录到新地方,让outlook express重建所有.dbx文件,然后再导入所有收件箱和已发送邮件 – 毛病依旧;
  3. 创建一个全新的windows user account,把邮件从老帐号导入到新帐号 – 毛病依旧;
  4. 在注册表里更改MTU的dword(这是microsoft support库中一篇文章教的方法) – 毛病依旧;
  5. disable firewall – 毛病依旧。那台机子用的是norton internet security,norton给我的感觉是经常自做主张更改设置,比如,如果网页里含有norton认为是电话号码的地方,norton会在那里插一面国旗和一个电话的小图标;如果网页里有javascript function name里含有ad,如adjust() {},norton会删掉所有javascript代码,而且不给任何提示。因为我对norton印象不佳,所以这次不能怪我滥杀无辜。
  6. system restore to a previous date when outlook express was working properly – 毛病依旧;
  7. uninstall outlook express, then reinstall outlook express – Wow! Finally I solved the problem!

谢天谢地,如果刚才最后一招不灵,第8招只有重装windows了。

Thunderbird确实好

我是一个很懒的人,thunderbird出名已经很久了,我仍然stick to outlook or outlook express。本来也是,不就收发一下邮件嘛,用哪个软件有很大区别吗?今天由于其他方面的原因,我不得不下载thunderbird用了一下,当然它没有惊天动地打动我的地方,但它的utf8已经走到microsoft前面了,outlook/express在英文windows下总是处理不好中文主题或发件人(outlook处理不好中文发件人,而outlook express处理不好中文主题)。别看平时我也能忍受着阅读??????布满问号的邮件,但既然看到thunderbird做得这么好,那我决定更多地支持一下开源产品啦。

有效地管理通讯簿

我用outlook express address book存放我的通讯录好多年了,因为windows只要有outlook express就可以打开wab文件,该文件又可以单独拷贝备份,vcard交流也很方便,好处还真不少。

坏处也不少:由于wab文件在不同机子上修改了很多次,也不知道什么时候起所有联系人姓被移到名,名被移到了中间名。而且微软似乎也忽略了给windows address book做本地化,虽然有中文版,但把联系人的姓名仍按“名 姓”的格式显示,看上去总那么别扭。更要命的是,我的wab最近几次修改时,随时导致某个死循环,强行中止通讯簿程序,再次启动就弹出“试图打开通讯簿文件时出错”,再也打不开wab了。不管是不是程序自身的bug,我这个wab已经遍布错误了。

windows address book自身没有任何错误修复能力,这给不少人提供了就业机会,我发现好几个版本的address book recovery工具,都是卖钱的。我不会去凑这个热闹的:既然wab自己都救不了自己,我何苦一定要用它来管理联系人呢?

反正不想继续保存为wab了,对付“试图打开通讯簿文件时出错”,我的办法是:用OpenOffice的Base来读取,转成其他格式的数据库,然后再怎么管理就不是我要讲的重点了。