vba - 通过关闭提醒来触发 Outlook 定期电子邮件
问题描述
我正在尝试在 Outlook 提醒被解除后发送电子邮件。
一旦提醒弹出,代码就会发送一封电子邮件。该代码基于https://www.extendoffice.com/documents/outlook/1567-outlook-send-schedule-recurring-email.html。
Private Sub Application_Reminder(ByVal Item As Object)
'Updated by Extendoffice 20200522
Dim xMailItem As MailItem
Dim xItemDoc As Word.Document
Dim xNewDoc As Word.Document
Dim xFldPath As String
Dim CurrentDATE
CurrentDATE = Format(Date, "ddmmmyy")
Dim Att As Attachment
Dim tmpFolder
Dim filePath As String
On Error Resume Next
If Item.Class <> OlObjectClass.olAppointment Then Exit Sub
If Item.Categories <> "Send Schedule Recurring Email" Then Exit Sub
Set xMailItem = Outlook.Application.CreateItem(olMailItem)
Set xItemDoc = Item.GetInspector.WordEditor
xFldPath = CStr(Environ("USERPROFILE"))
xFldPath = xFldPath & "\MyReminder"
If Dir(xFldPath, vbDirectory) = "" Then
MkDir xFldPath
End If
xFldPath = xFldPath & "\AppointmentBody.xml"
xItemDoc.SaveAs2 xFldPath, wdFormatXMLDocument ' wdFormatXML
Set xNewDoc = xMailItem.GetInspector.WordEditor
VBA.DoEvents
xNewDoc.Application.Selection.HomeKey
xNewDoc.Activate
xNewDoc.Application.Selection.InsertFile FileName:=xFldPath, Attachment:=False
tmpFolder = Environ("USERPROFILE")
For Each Att In Item.Attachments
filePath = tmpFolder & "\" & Att.FileName
Att.SaveAsFile (filePath)
xMailItem.Attachments.Add filePath
Kill filePath
Next Att
With xMailItem
.To = Item.Location
.Recipients.ResolveAll
.Subject = Item.Subject & " for " & CurrentDATE
.Send
End With
Set xMailItem = Nothing
VBA.Kill xFldPath
End Sub
解决方案
推荐阅读
- sql - 使用自定义等级和大小写的最高维度
- tensorflow - 保存/加载 TensorFlow Keras 模型仅用于预测
- reactjs - React Context 突变不会重新渲染子模块
- typescript - 我可以添加到打字稿中的只读类成员数组吗?
- android - 如何在颤动中将项目添加到 StreamController
- c# - MQTTnet PublishAsync 异常
- laravel - Pusher 接收数据空
- python - VS Code 没有发现 Python 单元测试测试
- c++ - *.cpp 文件中实现的 c++ 函数/方法永远不会内联扩展吗?
- python - 将列表分隔符更改为另一个(python)