这篇文章是上个月写的,补发一下。
发邮件时常常会出现邮件中写了要加附件的,结果邮件发出后才想起忘了加附件的事情。Thunderbird有一个插件可以解决这个问题,那就给Outlook也写一个吧,Google一下很快找到了相关的资料,参考着重写了一下,做成了。
下载地址:http://www.freemindworld.com/oac/oac.zip
解包可以得到一个.OTM文件,把它放到%APPDATA%\Microsoft\Outlook中(通常对应硬盘上C:\Documents and settings\\Application Data\Microsoft\Outlook)。如果这个目录已经有一个同名的.OTM文件,请小心行事,因为覆盖它可能会覆盖掉你正在使用的其它脚本。我这个文件是在Outlook 2003上制作和测试的,还没有试过2000或2007上可不可以工作。
打开Outlook,选择“工具->宏->宏…”,这时系统会弹出一个安全警告的对话框,在安全警告中选择“永远信任发布者”并点击“启用宏”,然后点“取消”关闭随后弹出的“宏”对话框。安装成功!
以后发邮件的时候,只要是在邮件正文(不包括回复或转发邮件时引用的原邮件内容)或标题中包含字符串“attach*”或“附件”或“enclos*”,但邮件中没有附加任何附件时,都会弹出对话框询问你是不是真的要发送这封邮件。
跟以前一样,在Google Code上建一个项目:
http://outlook-attachment-checker.googlecode.com
在上面可以下载到源程序,也欢迎有兴趣的朋友参与到项目开发中来。
几点问题说明一下:
1. 由于Outlook加强了安全机制,不签名的VBA是不可以运行的,所以我发布的文件是以我的身份签名的,如果你修改了代码,签名就失效了,这时你需要调整Outlook的安全设置来让你的代码可以运行,或者你必须自己对修改后的代码重新签名。具体的做法可以在这里找到。
2. 部分用户可能会遇到发送邮件时窗口死掉的问题,其实这是由于那个提醒你加附件的对话框弹了出来却被隐藏在了邮件窗口后面,这时可以通过任务栏按钮或Alt-Tab键激活那个对话框,然后做相应的处理。如果这个现象经常出现,可以修改源代码,把最后几行中的:
If MsgBox(promptMsg, vbYesNo + vbDefaultButton2 + vbInformation,
"You may forget the attachment") = vbNo Then
改成:
If MsgBox(promptMsg, vbYesNo + vbDefaultButton2 + vbInformation
+ vbSystemModal, "You may forget the attachment") = vbNo Then
3. 如果你是少数在看到本文前已经试用过这个东东的朋友,并且现在还在使用,请重新下载安装一下这个程序,以前的试用版本有一些BUG,比如,邮件太长时,就会Crash。