2016-12-23 6 views
0

Ich bin neu in den Möglichkeiten von VBA und ich möchte eine Regel (Skript) erstellen, die automatisch eine E-Mail in meinem Outlook-Posteingang mit einer bestimmten Verzögerung weiterleiten kann? Können Sie mir bitte einige Anweisungen geben, wie ich das erreichen kann?Wie kann ich automatisch eine E-Mail mit Verzögerung aus einem Outlook-Posteingang usign VBA senden?

Ich habe versucht:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMiliseconds As Long) 
Sub send(Item As Outlook.MailItem) 
Set fwd = Item.Forward 
fwd.Recipients.Add "[email protected]" 
Sleep (10000) 
fwd.send 
End Sub 

auch versucht:

Sub WasteTime(Finish As Long) 

    Dim NowTick As Long 
    Dim EndTick As Long 

    EndTick = GetTickCount + (Finish * 1000) 

    Do 

     NowTick = GetTickCount 
     DoEvents 

    Loop Until NowTick >= EndTick 

End Sub 


Sub send(Ite As Outlook.mailItem) 
    Set fwd = Item.Forward 
    fwd.Recipients.Add "[email protected]" 
    WasteTime (10) 
    fwd.send 
End Sub 

keine Wirkung.

Der zweite Code friert tatsächlich meine gesamte Outlook-App ein, was nicht mein gewünschter Effekt ist. Ich möchte nur das erneute Senden der E-Mail verzögern ...

Antwort

1

Versuchen Sie, DeferredDeliveryTime Property zu verwenden, der die Zeit festlegt, die zugestellt werden soll.

Beispiel

Option Explicit 
Public Sub Example() 
    Dim Item As Outlook.MailItem 

    Set Item = Application.CreateItem(0) 

    With Item 
     .Subject = "test" 
     .To = "0m3r" 
     .DeferredDeliveryTime = DateAdd("n", 10, Now) 
     Debug.Print Item.DeferredDeliveryTime 
     .Send 
    End With 

    Set Item = Nothing 
End Sub 

DateAdd Function

DateAdd("n", 10, Now) 

+--------+-----------------+ 
| Value | Explanation | 
+--------+-----------------+ 
| yyyy | Year   | 
| q  | Quarter   | 
| m  | Month   | 
| y  | Day of the year | 
| d  | Day    | 
| w  | Weekday   | 
| ww  | Week   | 
| h  | Hour   | 
| n  | Minute   | 
| s  | Second   | 
+--------+-----------------+ 
Verwandte Themen