利用宏避免发送确认邮件时忘记添加附件

团队的邮件周知流程在不断规范,对邮件格式当然也做出了很多要求。在刚开始的阶段,大家都还不是很熟练,于是频频出现聚精会神地把邮件内容处理完以后,还没有把制作完成的html附件添加到邮件里就点击了发送按钮。虽然Outlook支持邮件撤回功能,但是那个撤回功能实在是太SB了(谁用谁知道……)。当然我们也可以设置延迟发送,这样可以在一定程度上解决问题,但是如果你发送邮件后就去干别的了,那么延迟发送显然也不保险。所以最安全的方式还是在发送邮件时,如果是重构完成的确认邮件,并且又没有添加html附件,就弹出警告阻止发送。我做了一个Outlook的加载项实现这个功能,但是试验证明部署兼容性还是有一些问题(在一同事的Win7 x64 + Office 2007 x86上安装后不能加载)。所以这里分享一下用宏实现的方法。当然你也可以先尝试一下加载项能否在你的电脑上正常工作,可以的话就不用搞这么复杂了:下载ISD WebTeam 重构邮件附件检查加载项For Outlook 2007/2010

准备工作

Office的默认设置在各个版本中各有不同,为了保证后面的步骤能够顺利,我们可以先做一些准备工作:

  1. “文件 → 选项”,弹出Outlook选项页面(Outlook 2007以前的版本可能在“工具”下直接就有宏,可以跳到第3步)。
  2. 在左侧导航区域选择“自定义功能区”,最右侧的“主选项卡”拉到最下面,勾选“开发工具”(图1)。
  3. 在左侧导航区域选择“信任中心”,右侧点击“信任中心设置”(图2),弹出信任中心页面(Outlook 2007以前版本可能在“工具”下直接就有“信任设置”)。
  4. 左侧点击“宏设置”,右侧勾选“为所有宏提供通知”(图3)。

图1:显示开发工具

图2:打开信任中心设置

图3:设置宏安全性

编写宏

完成准备工作后,回到Outlook主界面,主选项卡上多了一个“开发工具”选项卡。点击打开“开发工具”选项卡,并点击其下的“Visual Basic”(Outlook 2007 以前的版本中可能在“工具”下的“宏”子菜单里就有),如图4。

图4:打开Visual Basic

在“Microsoft Visual Basic for Application”编辑器中,展开左侧的“Microsoft Outlook 对象”并双击“ThisOutlookSession”,打开编辑器,然后把以下代码粘贴到编辑窗口中(图5):

Option Explicit

Private Sub Application_ItemSend(ByVal Item As Object, ByVal Cancel As Boolean)
    Dim fileCount As Integer
    Dim attach As Attachment
    Dim msg As String
    fileCount = 0
    msg = "你尚未添加网页附件,确定要发送吗?"
    If (InStr(Item.Subject, "重构待确认?") > 0 And fileCount < 1) Then
        For Each attach In Item.Attachments
            If InStr(attach.FileName, "htm") > 0 Or InStr(attach.FileName, "html") > 0 Then
                fileCount = fileCount + 1
            End If
        Next attach

        If (MsgBox(msg, vbYesNo + vbDefaultButton2 + vbExclamation, "附件检查") = vbYes) Then
            Cancel = False
        Else
            Cancel = True
        End If
    End If
End Sub

代码说明:这段代码的作用是在邮件发送事件发生时,首先检查邮件主题是否包含“重构待确认”字样(根据重构周知邮件规范),如果是,则检查是否包含后缀名为"html"或者"htm"的附件(必须检查后缀,因为签名中就有一张图片作为附件,同时邮件中也有可能有数量不定的图片附件)。如果有html附件则邮件继续发送,否则弹出警告,要求你确认添加附件(这样保证了如果真的不需要网页附件,也不会不能发送邮件)。

图5:粘贴宏代码

然后点击左上角的保存按钮(CTRL+S),关闭宏编辑器,退出Outlook。

启用宏

重新打开Outlook,由于我们的宏没有进行数字签名,所以默认是没有启用的,启动时Outlook会弹出提示,请在弹出的提示框中点击“启用宏”(如图6,我的截图中第一项可用是因为进行了宏的数字签名,这个没有影响)。

图6:启动提示,启用宏

至此,我们的设置就完成了。你可以编写一封新邮件作为测试,在主题中包含“重构待确认”字样,不添加任何html网页文件作为附件,收件人最好写自己。然后点击“发送”,就会看到如下提示:

图7:宏测试

看到这个图说明宏已经正常工作,点击“否”即可停止发送,然后补上附件重新发送。如果不需要html附件,只要点“是”即可。

Enjoy It!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

Mac Jenkins搭建 Android/IOS自动打包环境

如何在mac上利用Jenkins搭建 Android/IOS自动打包环境呢? 设置静态IP 打开”System Preferences…”,设置静态ip。 ...

29410
来自专栏嵌入式程序猿

谁动了我的下载固件

之前的TWR-K64板子openSDA被同事刷成了jlink固件,估计这哥们喜欢用Jlink呵呵,如果想刷回PEmicro固件,我们该如何做呢,首先先了解下,O...

2708
来自专栏逸鹏说道

Jupyter ~ 像写文章般的 Coding (附:同一个ipynb文件,执行多语言代码)

这次选Markdown模式(关于Markdown基础可以看之前写的Markdown Base)

1976
来自专栏北京马哥教育

Python微信后台开发--环境搭建与接入指南

0x00 背景及介绍 申请一个微信公众平台订阅号,将后台接入到服务器上,验证服务器地址的有效性,实现简单的业务逻辑,根据用户发送不同类型的消息做出不同的反应。 ...

3166
来自专栏一个会写诗的程序员的博客

谷歌浏览器限制 6666 端口

今天搭的一个工程用的端口号是6666,本来我一直都是在firefox里面做开发调试的,今天想测下谷歌浏览器的兼容性,结果竟然访问不了,其它IE的浏览器也是正常的...

824
来自专栏bboysoul

如何发送垃圾邮件(Trity)

git clone https://github.com/toxic-ig/Trity.git cd Trity python install.py 输出

632
来自专栏大数据智能实战

redhat6.4上Cassandra 3.9节点无法加入服务器(unable to bind IP:port)问题的解决

今天想测试一下cassandra新版本 安装环境是redhat6.4 由于以前装过3.7版本,只不过之前是在ubuntu上进行安装的。这回换在redhat 没想...

1815
来自专栏张戈的专栏

WordPress记住评论用户信息的js版本,直接操作cookie无视缓存

这两天一直在折腾博客的评论功能,原因是开启了百度云加速的 html 缓存,导致原有的记住评论者信息的功能失效了,每次刷新文章页面,用户信息都会清空。 于是就折腾...

2674
来自专栏PHP实战技术

ThinkPHP->pathinfo模式(Linux下nginx的配置说明)

小伙伴在使用ThinkPHP搭建自己或者公司项目的时候,url模式设置成为兼容模式,也就是URL_MODEL的值为3的时候是不是也遇到过Lnmp的环境不支持pa...

22010
来自专栏顶级程序员

高效 MacBook 工作环境配置

工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快速准确的完成工作和学习任务而服务。 本文记录 MacBook 整...

4877

扫描关注云+社区