outlook 2007开始软件自带邮件召回功能。2003版本没有,可惜此版本盗版最厉害,用户很广,这次项目中用户分布很广,其中outlook2003版本用户数甚多,达到397人。

不可能让他们新装2007/2010等,因此使用outlook2003“工具”菜单中的VBA宏编辑器进行开发

邮件召回的前提:

1、必须是exchange邮件

2、收件人必须是outlook客户端,OWA不支持

3、收件人必须未读邮件

Private WithEvents vsoCommbandButton As CommandBarButton

Private WithEvents vsoCommbandRecallMessage As CommandBarButton

Dim item As Object

Private Sub Application_Startup()

Call addTotalButton

End Sub

'增加工具栏

Sub addTotalButton()

On Error Resume Next

Dim vsoCommandBar As CommandBar

'得到要添加的工具栏

Set vsoCommandBar = Outlook.ActiveExplorer.CommandBars("ExcelClub")

'如果工具栏为空,则增加

If (vsoCommandBar Is Nothing) Then

Set vsoCommandBar = Outlook.ActiveExplorer.CommandBars.add("ExcelClub", msoBarTop)

'在工具栏上增加一个按钮

Set vsoCommbandRecallMessage = vsoCommandBar.Controls.add(1)

vsoCommbandRecallMessage.Caption = "RecallMail"

vsoCommbandRecallMessage.FaceId = 72

vsoCommbandRecallMessage.Style = msoButtonIconAndCaption

 '显示增加的工具栏

vsoCommandBar.Visible = True

Else

Set vsoCommbandRecallMessage = vsoCommandBar.Controls(1)

End If

End Sub

'增加的按钮(RecallMail)的执行

Private Sub vsoCommbandRecallMessage_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

'出现错误时下一句代码继续运行

On Error Resume Next

Dim objNS As Outlook.NameSpace

Dim myItem As Outlook.mailItem, objSendFolder As Outlook.MAPIFolder

Dim objItems    As Outlook.Items

Dim tmpItem As Object

Set objNS = Application.GetNamespace("MAPI")

Set objSendFolder = objNS.GetDefaultFolder(olFolderSentMail)

Set objItems = objSendFolder.Items

objItems.Sort "[SentOn]", True

Set tmpItem = objItems.GetFirst

Do While TypeName(tmpItem) <> "Nothing"

        If TypeName(tmpItem) = "MailItem" Then

        Set myItem = tmpItem

        Exit Do

        End If

    Set tmpItem = objItems.GetNext

Loop

Set item = myItem

item.Display

Call ShowAttachmentDialog

myItem.Close olDiscard

End Sub

 Sub ShowAttachmentDialog()

    Dim objInsp

    Dim colCB

    Dim objCBB

    On Error Resume Next

    Set objInsp = item.GetInspector

    Set colCB = objInsp.CommandBars

    Set objCBB = colCB.FindControl(, 2511)

    If Not objCBB Is Nothing Then

        SendKeys "{ENTER}", wait

        objCBB.Execute

    End If

    Set objCBB = Nothing

    Set colCB = Nothing

    Set objInsp = Nothing

End Sub

为outlook增加“邮件召回”功能的更多相关文章

  1. seafile增加邮件服务功能

    这个很简单哈,直接上配置.此处我用的163邮箱 vim /opt/seafile/conf/seahub_settings.py ### 163邮箱配置测试 ### EMAIL_USE_SSL = F ...

  2. 如何设置outlook实现自动秘密抄送邮件的功能?

    很多朋友会发现虽然在家里同步了公司的邮箱可以正常收发邮件,可是每当使用家里的outlook发送相关邮件的时候,在公司的邮箱里找不到相关的发件记录,只能同步收件箱,而不能同步发件箱应该是比较让人困扰的问 ...

  3. django 增加验证邮箱功能

    在user文件夹下新建python包,utils 在包内新建文件email_send.py,其中包括验证字符串随机码的产生,数据库的存储和email的发送 # -*- coding: utf-8 -* ...

  4. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

  5. discuz3.2x增加邮箱验证功能

    为防止垃圾用户多次注册,为disczu增加邮箱验证功能. 大致分为二步: 1.申请邮箱,这里推荐使用腾讯免费企业邮箱:https://exmail.qq.com/portal/introducefre ...

  6. - C#编程大幅提高OUTLOOK的邮件搜索能力!

    原文:[原创] - C#编程大幅提高OUTLOOK的邮件搜索能力! 使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题 ...

  7. .NET开发邮件发送功能

    .NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知 ...

  8. PyQt5实现邮件合并功能(GUI)

    1. 实战Word批量 需要处理批量替换word的一些数据,数据源从Excel中来. Excel的百分数会变为数字,以及浮点数会多好多精度,为了原汁原味的数据,直接复制数据到文本文件.通过\t来分隔即 ...

  9. EWS Managed API 2.0 设置获取邮件自动回复功能

    摘要 最近要在邮件提醒功能中添加,自动回复的功能.在移动端获取用户在outlook上是否开启了自动回复功能,如果用户在outlook上开启了自动回复功能, 获取用户自动回复的内容,如果没有开启,用户可 ...

随机推荐

  1. s2sh三大框架整合过程(仅供参考)

    三大框架顾名思义就是非常有名的Struts2 ,Hibernate,Spring, 框架整合的方法很多,现在我写一个非常简单的整合过程,相信大家一看就会! 这里使用的struts-2.2.1.1.hi ...

  2. PHP: 判断是否是JSON数据

    原文:PHP: 判断是否是JSON数据 首先要记住json_encode返回的是字符串, 而json_decode返回的是对象. 判断数据不是JSON格式: function is_not_json( ...

  3. c语言mysql api

    原文:c语言mysql api 1.mysql_affected_rows()            //返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. 2.mysql_ ...

  4. mongodb group包(最具体的、最受欢迎、最容易理解的解释)

    和数据库一样group经常常使用于统计.MongoDB的group还有非常多限制,如:返回结果集不能超过16M, group操作不会处理超过10000个唯一键.好像还不能利用索引[不非常确定]. Gr ...

  5. 快速构建Windows 8风格应用5-ListView数据控件

    原文:快速构建Windows 8风格应用5-ListView数据控件 本篇博文主要介绍什么是ListView数据控件.如何构建ListView数据控件. 什么是ListView数据控件? 1)  Li ...

  6. POJ 3380 最大流

    Paratroopers Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  7. 6. SQL Server数据库监控 - 如何告警

    原文:6. SQL Server数据库监控 - 如何告警 常用的告警方式大致有:短信.邮件.应用程序 (beep提示,图标提示,升窗提示等),可是不能一直坐在电脑前看着应用程序,或者用脚本部署监控,根 ...

  8. C++中出现的计算机术语4

    adaptor(适配器) 一种标准库类型.函数或迭代器,使某种标准库类型.函数或迭代器的行为类似于第二种标准库类型.函数或迭代器.系统提供了三种顺序容器适配器:stack(栈).queue(队列)以及 ...

  9. NhibernateProfiler-写个自动破解工具(源码)

    04 2013 档案   [屌丝的逆袭系列]是个人都能破解之终结NhibernateProfiler-写个自动破解工具(源码) 摘要: 破解思路分析及手动破解 增加“附加到进程”功能--功能介绍增加“ ...

  10. asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记

    很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...