我的代码会显示包含基本主题,正文,附件的邮件。接下来,用户手动更新并自定义消息,并应发送消息。我想记录发送电子邮件的时间(如果)。这是可能的还是任何提示?
我的环境是Office 2007,其中基于Excel的宏转到Outlook。
[摘录]
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = Email '.CC =
.Subject = Subj
.BodyFormat = olFormatHTML
.Body = Msg '.HTMLBody = Msg
If Not FileAttach = vbNullString Then .Attachments.Add (FileAttach)
.Display
End With
答案 0 :(得分:4)
这完全可以使用Outlook.MailItem类中的_Send事件。
我使用它的方式,我创建了一个名为EMail Watcher的类,所以当我创建电子邮件并执行.Display时,我创建一个新的EMailWatcher对象并告诉它观看该发送的电子邮件,然后报告它发生了。
这是我使用它的课程。基本上,我还可以选择设置BoolRange,以便在用户发送电子邮件时,Excel范围会更新为True。我还可以让班级在发送电子邮件的时候更新Excel范围。
Public BoolRange As Range
Public DateRange As Range
Public WithEvents TheMail As Outlook.MailItem
Private Sub TheMail_Send(Cancel As Boolean)
If Not BoolRange Is Nothing Then
BoolRange.Value = True
End If
If Not DateRange Is Nothing Then
DateRange.Value = Now()
End If
End Sub
以下是我如何使用它:
With oMail
.To = addr
.Subject = "CCAT eVSM Utilities License Code"
.Body = "Message body"
.Display
End With
Set CurrWatcher = New EmailWatcher
Set CurrWatcher.BoolRange = Range("G12")
Set CurrWatcher.TheMail = oMail
希望这有助于......