[使用Outlook,如果其中包含我要完成的工作,我会标记电子邮件。完成工作后,我将电子邮件标记为完成(通过将标记更改为对勾)。我想自动发送答复,告诉初始发送者该工作已经完成。
[我发现下面的代码似乎可以完成我想要的一半,但我希望它使用发件人的电子邮件地址而不是“ John Smith”,并且最好包含初始电子邮件,就像我发送答复时一样。] >
Public WithEvents olItems As Outlook.Items
Private Sub Application_Startup()
Set olItems = Session.GetDefaultFolder(olFolderTasks).Items
End Sub
Private Sub olItems_ItemChange(ByVal Item As Object)
Dim obApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim Recip As String
'Replace "test" as per your needs
If InStr(LCase(Item.Subject), "test") > 0 And Item.Complete = True Then
'Replace with your desired contact
Recip = "John Smith"
If MsgBox("Do you want to send a report to " & Recip & " ?", vbYesNo + vbQuestion, "Confirm Sending Report") = vbYes Then
Set obApp = Outlook.Application
Set olMail = obApp.CreateItem(olMailItem)
With olMail
.To = Recip
.Subject = "Complete: " & Item.Subject
.Body = "Dear Mr. Smith" & vbCrLf & "I've completed this task in " & DateDiff("d", Item.CreationTime, Now) & " day" & Chr(40) & "s" & Chr(41) & "." & vbCrLf & vbCrLf & "Task Name: " & Item.Subject & vbCrLf & "Start Date: " & Item.StartDate & vbCrLf & "Due Date: " & Item.DueDate & vbCrLf & "Creation Time: " & Item.CreationTime & vbCrLf & "Completed Time: " & Now & vbCrLf & vbCrLf & "Task Details: " & vbCrLf & Item.Body
.ReadReceiptRequested = True
'To directly send it,use ".Send" instead
.Display
End With
End If
End If
End Sub
[使用Outlook,如果其中包含我要完成的工作,我会标记电子邮件。完成工作后,我将电子邮件标记为完成(通过将标记更改为对勾)。我想自动发送回复...
而不是在代码中创建新的邮件项目: