Thema Datum  Von Nutzer Rating
Antwort
Rot Outlook: Email senden und Versendetes verschieben
27.05.2013 10:24:58 Markus
NotSolved
27.05.2013 17:26:43 Markus
Solved

Ansicht des Beitrags:
Von:
Markus
Datum:
27.05.2013 10:24:58
Views:
2376
Rating: Antwort:
  Ja
Thema:
Outlook: Email senden und Versendetes verschieben

Hallo,

ich habe folgendes Ziel: ich erstelle mit Outlook 2010 ein Mail, versende es und möchte das versendete Element dann aus meinen Gesendeten Elementen in einen anderen Ordner verschieben. Mein Problem ist, dass das gesendete Mail nicht sofort nach dem Senden-Befehl auffindbar ist, auch nicht, wenn ich die Ausführung nach dem Senden pausiere. Kurioserweise reicht aber jede Benutzer-Interaktion zum fehlerfreien Durchlauf (MsgBox, Haltepunkt, ...)

Ich filtere die Outbox eindfach nach dem Betreff, wenn ich die MsgBox im auskommentiere, wird das Mail nicht gefunden, mit Unterbrechung durch MsgBox geht es (dann brauche ich auch die while-Schleife nicht, die eigentlich überflüssig ist, weil sie andernfalls auch nichts hilft)

Gibt es da eine elegantere Lösung? Vielleicht so etwas wie "Refresh"? Application.GetNamespace("MAPI").SyncObjects(1).Start nützt nichts.

Danke für eure Hilfe,

Markus


Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub SendAndMove()

    Dim j As Long
    Dim fldSrc As MAPIFolder, _
        fldTgt As MAPIFolder
    Dim ml As Object
    Dim mlSent As Object
    Dim subj As String
    
    Set fldSrc = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
    Set fldTgt = Application.GetNamespace("MAPI").Folders("Archiv")
    
    ' Mail erzeugen und senden
    Set ml = Application.CreateItem(olMailItem)
    subj = "MeinBetreff"
    With ml
        .To = "adresse@test.com"
        .subject = subj
        .Body = "Mailtext"
        .Send
    End With
    MsgBox Prompt:="Gesendet: " & ml.subj & " an " & ml.To
    ' Gesendetes Mail verschieben
    Set mlSent = fldSent.Items.Restrict("[Subject] = """ & subj & """")
    j = 0
    While (mlSent.Count = 0) And (j < 100)
        Sleep 10
        Set mlSent = fldSent.Items.Restrict("[Subject] = """ & subj & """")
        j = j + 1
    Wend
    For Each ml In mlSent
        ml.Move fldTgt
    Next ml
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Outlook: Email senden und Versendetes verschieben
27.05.2013 10:24:58 Markus
NotSolved
27.05.2013 17:26:43 Markus
Solved