用VBA发送Outlook电子邮件的时间不会在第二天发送?

问题描述:

我试图做的是发送一个电子邮件使用VBA在Excel中虽然展望,但与第二天约8:30发送日期/时间的防守。 下面的代码将发送一封电子邮件罚款,甚至当我的工作站被锁定时,它甚至会发送一个具有发送时间戳的邮件,但是当我将其设置为第二天8:30时,他们只是留在我的发件箱中,直到我打开他们打起来,我甚至可以打开他们,并在打击时间之前发送,他们将罚款,或之后,他们将发送imediatly。用VBA发送Outlook电子邮件的时间不会在第二天发送?

传入的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 

我失去了一些重要的东西?

DeferredDeliveryTime是Outlook邮件消息的属性。

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

+0

是的,它是通过Exchange服务器完成的,正如我之前提到的那样,当我的工作站被锁定时它会发送,但不会在它运行一晚时发送。我可以运行宏,然后进入我的发件箱命中发送,然后当延迟时间周期它会发送,同样,当我用延迟时间手动创建电子邮件。考虑到这一点,我不认为这是Outlook应用程序处于活动或Exchange服务器的问题,但与宏或延迟时间如何传递给Outlook – Anthony 2010-10-15 09:46:53

cached mode - 禁用它。

这发生在我身上,我的工作中的IT人员能够帮助我解决问题。我正在运行Office 2010