VBA发Out-of-office in outlook
来源:互联网 发布:淘宝评价体系分析 编辑:程序博客网 时间:2024/06/07 02:16
单位的Jira 和Outlook联系的不够紧密,总之OOO的状态无法让那些Jira上发任务Ticket的人知道,这么着还是挺容易误事的。遂做了一个VBA 工具,小规模解决下这个问题。
另外,TrustCentre里面的Macro Setting要改一改,至少改到,所有的轰都prompted,或者就直接允许。这个会有一些宏病毒风险。
Private WithEvents Items As Outlook.Items'Create for Jira OutOfOffice Notice email in outlook'Please review below comment lines and change the info according to you'Alt+F11 switch to VB Editor, paste the code to "ThisOutlookSession"'Go to Trust Center under Macro tab, Trust all Macro, or if it is signed, you can just trust VBA with Signature'Restart outlookPrivate Sub Application_Startup() Dim olApp As Outlook.Application Dim objNS As Outlook.NameSpace Set olApp = Outlook.Application Set objNS = olApp.GetNamespace("MAPI") ' default local Inbox Set Items = objNS.GetDefaultFolder(olFolderInbox).Folders("Jira").Items 'Change to Jira Folder if you have any...End SubPrivate Sub Items_ItemAdd(ByVal item As Object) On Error GoTo ErrorHandler Dim oNS As Outlook.NameSpace Dim oStores As Outlook.Stores Dim oStr As Outlook.Store Dim oPrp As Outlook.PropertyAccessor Dim olReply As Object Dim myName As String myName = "MSS" 'Change to your email display name Set oNS = Outlook.GetNamespace("MAPI") Set oStores = oNS.Stores Dim Msg As Outlook.MailItem For Each oStr In oStores If oStr.ExchangeStoreType = olPrimaryExchangeMailbox Then Set oPrp = oStr.PropertyAccessor If (oPrp.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B") = True) Then 'Check OOO status If TypeName(item) = "MailItem" Then Set Msg = item If InStr(Trim(Msg.Sender), myName) <= 0 And InStr(Trim(Msg.Sender), "(JIRA)") > 0 Then 'Only Jira sent mail would be reply For k = Msg.Recipients.Count To 1 Step -1 If Msg.Recipients.item(k) = myName Then 'In case you send it to yourself Set olReply = Msg.ReplyAll olReply.Recipients.Remove (1) strNum = InStr(Trim(Msg.Sender), "(") - 1 SenderName = Trim(Mid(Trim(Msg.Sender), 1, strNum)) Set olRecip = olReply.Recipients.Add(Replace(SenderName, " ", ".") & "@wswswsws.com") olReply.HTMLBody = "Hello, Thank you." & vbCrLf & _ "As I'm currently out of office please contact my manager for urgent JIRA tasks." & vbCrLf & olReply.HTMLBody olReply.Send Exit For End If Next End If End If End If End If Next ProgramExit: Exit SubErrorHandler: MsgBox Err.Number & " - " & Err.Description Resume ProgramExitEnd Sub
阅读全文
0 0
- VBA发Out-of-office in outlook
- OUTLOOK用VBA自动发MAIL
- 利用vba 调用outlook发邮件
- out of office
- VBA of string replace in word VBA
- 吐血记vba out of memory问题
- 350. Out of office, out of danger. 无官一身轻
- 350. Out of office, out of danger. 无官一身轻
- out-of-sync in juno
- in band & out of band
- outlook vba 插件
- outlook vba 插件2
- 微软发力抢占移动平台市场(Office、Acompli、Outlook、Sunrise等)
- Silverlight实例教程 - Out of Browser与Office的互操作
- Silverlight实例教程 - Out of Browser与Office的互操作
- Silverlight实例教程 - Out of Browser与Office的互操作
- 【Office Outlook】账户添加
- 解决out of memory in asp.net
- CoreCLR源码探索(五) GC内存收集器的内部实现 调试篇
- CoreCLR源码探索(四) GC内存收集器的内部实现 分析篇
- 根据文本框的宽度从而使文本框内的颜色及其发生变化
- CoreCLR文档翻译
- 期待微软平台即服务技术Service Fabric 开源
- VBA发Out-of-office in outlook
- 使用EntityFrameworkCore实现Repository, UnitOfWork,支持MySQL分库分表
- Git,Git Flow,GitLab使用指南
- MySQL协议.NET Core实现(一)
- 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)
- 你真的理解CAP理论吗?
- 基于微软开发平台构建和使用私有NuGet托管库
- 年度大片:StackOverflow 2017开发者调查报告
- Dapper源码学习和源码修改