在VBA中发送具有延迟时间的Outlook电子邮件将不会在第二天发送?

时间:2010-10-15 09:32:58

标签: excel email vba outlook

我正在尝试做的是使用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

我错过了重要的事情吗?

2 个答案:

答案 0 :(得分:1)

cached mode - 禁用它。

这件事发生在我身上,我工作的IT人员能够帮我修复它。我正在运行Office 2010

答案 1 :(得分:0)

DeferredDeliveryTime是Outlook邮件的属性。

如果您有Exchange服务器,则“延迟发送”将由Exchange完成。如果您没有Exchange,则您的Outlook应用程序需要处于活动状态。