2010-10-15 80 views
1

我試圖做的是發送一個電子郵件使用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 

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

回答

0

DeferredDeliveryTime是Outlook郵件消息的屬性。

如果您有Exchange服務器,則「延遲發送」將由Exchange完成。如果您沒有Exchange,則您的Outlook應用程序需要處於活動狀態。

+0

是的,它是通過Exchange服務器完成的,正如我之前提到的那樣,當我的工作站被鎖定時它會發送,但不會在它運行一晚時發送。我可以運行宏,然後進入我的發件箱命中發送,然後當延遲時間週期它會發送,同樣,當我用延遲時間手動創建電子郵件。考慮到這一點,我不認爲這是Outlook應用程序處於活動或Exchange服務器的問題,但與宏或延遲時間如何傳遞給Outlook – Anthony 2010-10-15 09:46:53

1

cached mode - 禁用它。

這發生在我身上,我的工作中的IT人員能夠幫助我解決問題。我正在運行Office 2010

相關問題