Outlook VBA Gesendete Email in Aufgabe anlegen
Hallo zusammen,
ich kenne mich mit Outlook VBA noch nicht so gut aus und bräuchte Hilfe:
Ich möchte nach dem Senden (egal, ob neue Mail oder beantwortete bzw. weitergeleitete EMail)
a. Eine neue Aufgabe anlegen
b. In der Aufgabe soll der Betreff = der Betreff der gesendeten Email sein
c. Im Body der Aufgabe soll die gesendete Email eingefügt werden
Mein Code legt aber nicht die SOEBEN versendete Mail in die Aufgabe,
sondern die vorletze Mail.
Könnte mir vielleicht jemand sagen, was ich hier falsch mache?
Danke im Voraus.
LG
ich kenne mich mit Outlook VBA noch nicht so gut aus und bräuchte Hilfe:
Ich möchte nach dem Senden (egal, ob neue Mail oder beantwortete bzw. weitergeleitete EMail)
a. Eine neue Aufgabe anlegen
b. In der Aufgabe soll der Betreff = der Betreff der gesendeten Email sein
c. Im Body der Aufgabe soll die gesendete Email eingefügt werden
Mein Code legt aber nicht die SOEBEN versendete Mail in die Aufgabe,
sondern die vorletze Mail.
Könnte mir vielleicht jemand sagen, was ich hier falsch mache?
Public Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Msgbox Abfrage
Select Case MsgBox("Aufgabe anlegen", vbYesNo + vbQuestion, "Aufgabe zur Mail")
'Wenn mit "Ja" bestätigt
Case vbYes
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCC As String
Dim oAccount As Outlook.Account
Dim outl, Task As Object
Dim olApp As Object, objMail As Object
strSubject = Item.Subject 'Email Betreff
strFrom = Item.SendUsingAccount 'Absender
strTo = Item.To 'Empfänger
strCC = Item.CC 'Empfänger im CC
Set outl = CreateObject("Outlook.Application")
Set Task = outl.CreateItem(3)
Set Item = ActiveInspector.CurrentItem
'Aufgabe erstellen
Task.Subject = strSubject 'Aufgabenbetreff soll den gleichen Namen haben, wie der Email-Betreff
Task.Body = _
Date & vbTab & "Von: " & strFrom _
& Chr(13) & vbTab & vbTab & "An: " & strTo _
& Chr(13) & vbTab & vbTab & "CC: " & strCC _
& Chr(13)
'Die soeben versendete Email in die Aufgabe kopieren
Set olApp = GetObject(, "OutLook.Application")
Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
'MsgBox objMail
Task.Attachments.Add objMail
'Wichtigkeit Hoch (2 = Hoch, 1 = normal, 0 = niedrig)
Task.Importance = 2
Task.StartDate = Date 'heute
Task.DueDate = Date 'heute
Task.Display
Case vbNo 'Wenn mit "Nein" bestätigt wurde
End Select
End Sub
Danke im Voraus.
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 661813
Url: https://administrator.de/contentid/661813
Ausgedruckt am: 22.11.2024 um 02:11 Uhr
11 Kommentare
Neuester Kommentar
Moin,
ich mutmaße auf die Schnelle, aber Du feuerst dieses Makro beim Senden einer E-Mail und nicht danach.
Wenn eine E-Mail gesendet wird, liegt sie erst im Postausgang und danach im "Gesendete Objekte"-Ordner.
Ich würde eine Warteschleife einbauen, die ca. 5 Sekunden verzögert. Das sollte reichen.
Gruß
bdmvg
ich mutmaße auf die Schnelle, aber Du feuerst dieses Makro beim Senden einer E-Mail und nicht danach.
Public Sub Application_ItemSend
Wenn eine E-Mail gesendet wird, liegt sie erst im Postausgang und danach im "Gesendete Objekte"-Ordner.
Ich würde eine Warteschleife einbauen, die ca. 5 Sekunden verzögert. Das sollte reichen.
Gruß
bdmvg
Ihr denkt hier viel zu kompliziert, denn an das ItemSend Event wird ja die zu sendende Mail bereits als Parameter in der Variable Item übergeben, also kann diese direkt genutzt werden um sie als Attachment hinzuzufügen , außerdem sind da einige überflüssige Schnippsel enthalten wie z.B. das Erstellen eines Outlook-Objekts denn das Event selbst läuft ja schon in Outlook, also kann man hier das Application Objekt benutzen statt ein neues Objekt zu erstellen
Gruß SK
Public Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Msgbox Abfrage
Select Case MsgBox("Aufgabe anlegen", vbYesNo + vbQuestion, "Aufgabe zur Mail")
'Wenn mit "Ja" bestätigt
Case vbYes
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCC As String
Dim Task As TaskItem
' Item vorher speichern damit es eine gültige ID im Outlook-Store hat und damit dann auch korrekt als Attachment im Task landet
Item.Save
strSubject = Item.SUBJECT 'Email Betreff
strFrom = Item.SendUsingAccount 'Absender
strTo = Item.To 'Empfänger
strCC = Item.CC 'Empfänger im CC
Set Task = Application.CreateItem(olTaskItem)
'Aufgabe erstellen
Task.SUBJECT = strSubject 'Aufgabenbetreff soll den gleichen Namen haben, wie der Email-Betreff
Task.Body = _
Date & vbTab & "Von: " & strFrom _
& Chr(13) & vbTab & vbTab & "An: " & strTo _
& Chr(13) & vbTab & vbTab & "CC: " & strCC _
& Chr(13)
Task.Attachments.Add Item
'Wichtigkeit Hoch (2 = Hoch, 1 = normal, 0 = niedrig)
Task.Importance = 2
Task.StartDate = Date 'heute
Task.DueDate = Date 'heute
Task.Display
Case vbNo 'Wenn mit "Nein" bestätigt wurde
End Select
End Sub
Hallo zusammen,
ich muss das Thema noch einmal hochholen und eine Frage loswerden...
Ich habe Outlook365 in der Firma und den o. g. VBA Code in Outlook hinterlegt.
Am ersten Tag hat er wunderbar funktioniert. Seit dem 2. Tag kommt die Abfrage nicht mehr.
Ich habe leider noch nicht herausfinden können, weshalb das so ist...und hoffe, dass Ihr mir helfen könnt.
Benötigt Ihr noch weitere Informationen, dann schreibt hier kurz. Vorab schon mal vielen Dank und ein schönes Wochenende.
Marco
ich muss das Thema noch einmal hochholen und eine Frage loswerden...
Ich habe Outlook365 in der Firma und den o. g. VBA Code in Outlook hinterlegt.
Am ersten Tag hat er wunderbar funktioniert. Seit dem 2. Tag kommt die Abfrage nicht mehr.
Ich habe leider noch nicht herausfinden können, weshalb das so ist...und hoffe, dass Ihr mir helfen könnt.
Benötigt Ihr noch weitere Informationen, dann schreibt hier kurz. Vorab schon mal vielen Dank und ein schönes Wochenende.
Marco
Am ersten Tag hat er wunderbar funktioniert. Seit dem 2. Tag kommt die Abfrage nicht mehr.
Dann hat dir das Security-Center/GPO/etc. die Makros unter dem A.... weggezogen und wieder deaktiviert .Zitat von @bangalore:
Am ersten Tag hat er wunderbar funktioniert. Seit dem 2. Tag kommt die Abfrage nicht mehr.
Dann hat dir das Security-Center/GPO/etc. die Makros unter dem A.... weggezogen und wieder deaktiviert .Das stimmt wohl 😬 Oh je, das hatte ich noch gar nicht in Betracht gezogen. Nun funktioniert es anscheinend wieder.
Danke für den Hinweis. 😊