
MSFT Outlook VBA处理新邮件的方法
初始化设置:在Outlook启动时,注册一个引用,并初始化相关变量。 新邮件处理:当收到新邮件时,通过 邮件解析:解析每个邮件的ID,获取对应邮件对象进行处理。 主题检查:检查邮件主题是否以“kkk:"开头。 信息提取与转发:如果主题以“kkk:"开头,提取后续内容并转发到Lotus Notes邮箱。 打开Outlook,点击菜单栏的“工具” -> “宏” -> “安全性”,将宏的安全性设置为“低”。 将以上代码粘贴到新的模块中,确保 保存并关闭编辑器。
发布日期:2025-04-15 01:36:43
浏览次数:8
分类:精选文章
本文共 2402 字,大约阅读时间需要 8 分钟。
Outlook邮件自动转发处理脚本
背景与需求
在我们的工作环境中,使用了两种邮件客户端:外部邮箱(Outlook)和内部邮箱(Lotus Notes)。为了提高工作效率,我们希望在收到Outlook邮箱中的新邮件时,自动判断邮件的主题内容。如果邮件主题以“kkk:"开头,则将“kkk:"后面的内容提取出来,并将其作为收件人地址发送到Lotus Notes邮箱中。
解决方案
为了实现上述功能,我们可以使用微软Outlook的VBA宏编写一个自动化脚本。以下是实现该功能的详细代码和说明。
代码实现
Option ExplicitPublic WithEvents outApp As Outlook.ApplicationSub Initialize_handle() Set outApp = ApplicationEnd Sub' 打开OutLook的时候调用,注册application引用Private Sub Application_Startup() Initialize_handleEnd Sub' 收到新邮件的时候自动调用Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String) Dim mai As Object Dim intInitial As Integer Dim intFinal As Integer Dim strEntry As String Dim intLength As Integer intInitial = 1 intLength = Len(EntryIDCollection) intFinal = InStr(intInitial, EntryIDCollection, ",") Do While intFinal > 0 strEntryID = StringMid(EntryIDCollection, intInitial, (intFinal - intInitial)) Set mai = Application.Session.GetItemFromID(strEntryID) newmail_proc mai intInitial = intFinal + 1 intFinal = InStr(intInitial, EntryIDCollection, ",") Loop strEntryID = StringMid(EntryIDCollection, intInitial, (intLength - intInitial) + 1) Set mai = Application.Session.GetItemFromID(strEntryID) newmail_proc maiEnd SubPrivate Sub newmail_proc(ByVal mai As Object) Dim itm As Object Dim result As Integer Dim str_kkk As String Dim str_subject As String Dim len_subject As Integer Dim str_body As String Dim str_reception As String str_subject = mai.subject len_subject = Len(str_subject) str_kkk = StringMid(str_subject, 1, 4) result = StringStrComp(str_kkk, "kkk:", vbTextCompare) If result > 0 Then str_reception = StringMid(str_subject, 5, (len_subject - 4) + 1) str_body = mai.body Set itm = outApp.CreateItem(0) With itm subject = "新邮件来自a@a.com" to = str_reception body = str_body send End With End IfEnd Sub
代码解释
NewMailEx
事件处理,提取邮件的ID集合。实施步骤
Option Explicit
已设置。注意事项
- 代码中
outApp
引用需手动添加,确保在References
中包含Outlook对象库。 - 代码需放在正确的模块中,避免导致脚本无法运行。
通过以上实现,我们可以自动处理Outlook收到的邮件,实现主题匹配后自动转发到Lotus Notes邮箱的功能,提升工作效率。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月22日 06时43分48秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MQTT v5共享订阅是怎么回事?如何使用共享订阅提高消息订阅的灵活性和可伸缩性?
2025-04-14
MQTT vs HTTP:谁更适合物联网?
2025-04-14
MQTT 保持活动计时器:让您的设备保持连接
2025-04-14
MQTT 保留消息
2025-04-14
MQTT 和 EMQX到底有啥区别?
2025-04-14
MQTT 在工控上位机中的应用
2025-04-14
MQTT 持久会话与 Clean Session 详解
2025-04-14
MQTT 通信协议详解与应用场景全解析
2025-04-14
MQTT介绍及与其他协议的比较
2025-04-14
MQTT共享订阅:实现高效的消息通信
2025-04-14
MQTT协议 - 安全问题
2025-04-14
MQTT协议知识梳理,看完你就懂了!
2025-04-14
MQTT发消失给HA客户端执行失败Stopped because an error was encountered at not a valid value for dictionary value
2025-04-14
MQTT工作笔记0005---CONNECT控制报文2
2025-04-14
MQTT工作笔记0006---CONNECT控制报文3
2025-04-14
MQTT工作笔记0007---剩余长度
2025-04-14
MQTT工作笔记0008---服务质量
2025-04-14
MQTT工作笔记0009---订阅主题和订阅确认
2025-04-14
MQTT工作笔记0010---订阅主题和订阅确认2
2025-04-14