Clever-Excel-Forum

Normale Version: E-Mail versenden und speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich hoffe hier kann mir jmd. helfen. Ich suche eine Möglichkeit aus Excel u. Access heraus E-Mails zu schicken u. die E-Mails im Ordner "Gesendete Objekte" zu speichern.
Im Netz habe ich nur den Tipp gefunden, dass man mit ItemAdd arbeiten soll, aber ehrlich gesagt, verstehe ich nicht, wie man mit dieser Anweisung arbeitet bzw. wie diese einzubauen ist.
Das mit dem Verschicken habe ich schon hinbekommen. Sieht so aus:
Code:
Sub LBverschicken1()

Dim outlLB As Object
Dim mailLB As Object

    Set outlLB = CreateObject("outlook.application")
    Set mailLB = outlLB.CreateItem(0)
    mailLB.Subject = "XXX " & Format(Now(), "DD.MM.YYYY")
    mailLB.To = "XXX@XXX.de"
    mailLB.Attachments.Add "XXX_" & Format(Now(), "YYMMDD") & ".xls"
    mailLB.ReadReceiptRequested = False
    mailLB.Send

End Sub

Vielen Dank schon mal für eure Tipps.
Matthias
Hallo Matthias,

bei mir landen die automatisch im Ordner Gesendete Objekte. Hast Du in Deinem Outlook eventuell mehrere Postfächer eingerichtet? Wenn ja, dann landen die im ersten Postfach.
Guten Morgen,

sorry, hab' mich blöd ausgedrückt. Möchte die Mails aus dem Ordner "Gesendete Objekte" auf der Festplatte im msg-Format speichern.
Hallo,

mit diesem code kannst Du die letzte gesendete email speichern. Pfad und vor allem Dateiname könnte man noch variabel gestalten, indem man z.B. den Betreff nimmt und ggf. noch den Zeitpunkt, damit bei gleichem Betreff nichts überschrieben wird.
Das Ding hat jedoch einen kleinen Nachteil. Wenn das Senden länger dauert, ist die Nachricht noch im Postausgang und nicht im Gesendet. Für den Fall müsste man eine ausreichende Wartezeit programmieren.

Code:
Sub SaveLastSentInFolder()
'Variablendeklarationen
'Objekte
  Dim olApp As Object 'Outlook.Application
  Dim olNameSpace As Object 'Outlook.Namespace
  Dim olSentBox As Object 'Outlook.MAPIFolder
'Outlook Objekt zuweisen
  Set olApp = CreateObject("Outlook.Application")
'Mapi zuweisen
  Set olNameSpace = olApp.GetNamespace("MAPI")
'Gesendete Objekte des Standardpostfachs zuweisen
  Set olSentBox = olNameSpace.GetDefaultFolder(olFolderSentMail)
'Letzte gesendete email speichern
'Hinweis: Senden dauert etwas, ggf. Wartezeit programmieren!
  olSentBox.Items(olSentBox.Items.Count).SaveAs "C:\Test\Test.msg"
End Sub
Hallo,

ja, so einen Code habe ich in ähnlicher Weise schon im Einsatz. Problem ist nur, dass ich mit einem Makro mehrere Mails an unterschiedliche Empfänger versende. Der Code für die letzte Mail reicht daher nicht aus. Vor allem wenn ich zwischendurch manuell noch andere Mails verschicke.