我正在尝试做的是使用VBA在Excel中发送电子邮件,但是在第二天大约8:30有一个推迟的发送日期/时间。 下面的代码,会发送一封电子邮件,即使我的工作站被锁定,它甚至会发送一个带有裸片发送时间的电子邮件,但是当我将它设置为第二天8:30时,它们只是留在我的发件箱中,直到我打开它们起来打,我甚至可以打开它们并在推迟时间之前点击发送它们将发送罚款,或者之后它们将发送imediatly。
传入的deferedtime变量是一个格式化的字符串“dd / mm / yyyy hh:mm:ss”例如“15/10/2010 08:30:00”
Sub Send_Outlook_Email(Addresses, attach, strSubject, strBody, defertime)
Dim objOL As Outlook.Application
Dim msg As Outlook.MailItem
Set objOL = New Outlook.Application
Set msg = objOL.CreateItem(olMailItem)
Dim d As Date
strEmail = ""
For i = 0 To UBound(Addresses)
strEmail = strEmail & Addresses(i) & "; "
Next
strEmail = Trim(strEmail)
With msg
.To = strEmail
.subject = strSubject
.HTMLBody = strBody
For i = 0 To UBound(attach)
strAttach = attach(i)
If Len(strAttach) > 0 And Len(Dir(strAttach)) > 0 Then
.Attachments.Add (strAttach)
End If
Next
.DeferredDeliveryTime = defertime
.Send
End With
End Sub
我错过了重要的事情吗?
答案 0 :(得分:1)
cached mode
- 禁用它。
这件事发生在我身上,我工作的IT人员能够帮我修复它。我正在运行Office 2010
。
答案 1 :(得分:0)
DeferredDeliveryTime
是Outlook邮件的属性。
如果您有Exchange服务器,则“延迟发送”将由Exchange完成。如果您没有Exchange,则您的Outlook应用程序需要处于活动状态。