Clever-Excel-Forum

Normale Version: Mails als PDF o. TXT auf Festplatte speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,
ich suche nach einer Möglichkeit die Mails in Outlook 2016 als PDf oder TXT-Datei auf Festplatte zu speichern. Im Forum und im Web konnte ich leider nicht fündig werden und hoffe, dass mir hier jemand helfen kann.

Bin für jede Idee und Vorschlag sehr dankbar.
Hallo!

Als normale PDF? Oder benötgst Du eine gesetzeskonforme Speicherung? Für letzteres wäre Convert von Gangl etwas, ist aber kostenpflichtig. Für normales Speichern hätte ich einen VBA-Code für den PDF-Creator 1.7.3.

Gruß, René
Hi Renė,

nur rein interessehalber: worin liegt der Unterschied zwischen normaler und gesetzeskonformer PDF?
Hallo Renè,

Danke für deine Hilfsbereitschaft. Lass uns der Reihe nach gehen und zwar würde ich dein Makro gerne testen. Sollten meine Anforderungen an die Speicherung erfüllt werden, wäre ich dir dankbar für dein Script. Z. B. ist es erforderlich, dass der Emailbodytext und auch der Anhang getrennt voneinander als PDF in einen von mir bei Speicherung zu bestimmenden Ordner auf der Festplatte abgespeichert wird. Ich hoffe, dass ich mich verständlich ausdrücken konnte.

Übrigens die gesetzeskonforme Speicherung ist nicht soooo wichtig! Obwohl, wenn möglich, warum nicht?!
(13.03.2018, 10:08)WillWissen schrieb: [ -> ]nur rein interessehalber: worin liegt der Unterschied zwischen normaler und gesetzeskonformer PDF?
Eine gesetzeskonforme Archivierung/Speicherung muss eine PDF/A-Datei sein. Alle Anhänge der Email müssen in der PDF/A-Datei (als PDF-Anhänge) eingebettet sein. Jedwede Änderung ist somit nachvollziehbar.
Der folgende Code für den PDF-Creator 1.7.3 speichert die aktive mail als PDF-Datei. Die Anhänge können separat als Datei auf Festplatte gespeichert werden. Am Ende des Makros muss man noch den Namen des Standarddruckers anpassen. In "sPDFName" steht der Name der für die PDF-Datei verwendet werden soll. "sPDFPath" enthält den Dateispeicherort.

Möchte man die PDF-Datei mit Kennwort versehen muss man ".cOption("PDFUseSecurity")" auf 1 setzen und die Kennwörter anpassen. ".cOption("PDFUserPass") " ist das Passwort zum Öffnen. ".cOption("PDFOwnerPass") = 1" ist das Bearbeitungskennwort, kann auf 0 gesetzt werden wenn es nicht benötigt wird.

Sub MailSpeichernAlsPDF()

Dim objInspector   As Inspector

Dim SaveInAsFile   As String
Dim sMasterPass    As String
Dim sUserPass      As String
Dim sPDFName       As String
Dim sPDFPath       As String

Dim obj            As Object
Dim pdfjob         As Object

Dim intAnlagen     As Long
Dim i              As Long


Shell "rundll32 printui.dll,PrintUIEntry /y /n PDFCreator"

On Error GoTo ende

  If TypeOf Application.ActiveWindow Is Outlook.Explorer Then
  Set obj = Application.ActiveWindow
  Set obj = obj.Selection(1)
  
  Else

   Set objInspector = ActiveInspector
   objInspector.Activate

      If objInspector.IsWordMail Then
         Set obj = Application.ActiveInspector.CurrentItem
      End If

  End If

    sPDFName = Format(Now, "YYYY-MM-DD") & " " & obj.Subject & ".pdf"
    sPDFPath = Environ("USERPROFILE") & "\Desktop\Outlooktest\"

    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

    With pdfjob
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Can't initialize PDFCreator.", vbCritical + _
                vbOKOnly, "PrtPDFCreator"
            Exit Sub
        End If
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sPDFPath
        .cOption("AutosaveFilename") = sPDFName
        .cOption("AutosaveFormat") = 0
        If MsgBox("Soll die Datei nach dem erstellen angezeigt werden?", vbYesNo, "Anzeigen?") = vbYes Then
        .cOption("AutosaveStartStandardProgram") = 1
        End If
        
        .cOption("PDFUseSecurity") = 0
        .cOption("PDFOwnerPass") = 1
        .cOption("PDFOwnerPasswordString") = "Test"
        .cOption("PDFUserPass") = 1
        .cOption("PDFUserPasswordString") = "Test"
        .cOption("PDFAes128Encryption") = 1
        
        .cClearCache
    End With

    obj.PrintOut

    Do Until pdfjob.cCountOfPrintjobs = 1
        DoEvents
    Loop
    pdfjob.cPrinterStop = False


    Do Until pdfjob.cCountOfPrintjobs = 0
        DoEvents
    Loop
    pdfjob.cClose
    Set pdfjob = Nothing
With obj

intAnlagen = .Attachments.Count
   If intAnlagen > 0 Then
      If MsgBox("Möchten Sie die Anhänge separat speichern?", vbYesNo + vbQuestion, "Frage") = vbYes Then
         For i = 1 To intAnlagen
         SaveInAsFile = .Attachments.Item(i).Filename
         If Right(SaveInAsFile, 3) = "jpg" Or Right(SaveInAsFile, 3) = "png" Or _
            Right(SaveInAsFile, 3) = "gif" Or Right(SaveInAsFile, 4) = "jpeg" Then GoTo weiter
                .Attachments.Item(i).SaveAsFile sPDFPath & "\" & SaveInAsFile

weiter:
         Next i
   End If

End If

MailDelete:

If MsgBox("Möchten Sie die Email löschen?", vbYesNo + vbQuestion, "Frage") = vbYes Then .Delete

End With
ende:
Shell "rundll32 printui.dll,PrintUIEntry /y /n ""Samsung ML-2850 Series"""
EndSub:
End Sub



VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Bei den Anhängen muss man eventuell noch anpassen wenn alle Anhänge gespeichert werden sollen.
Hallo Renè,

Danke für das Makro!  :23:

Kurze Nachfrage. 
Code:
sPDFName = Format(Now, "YYYY-MM-DD") & " " & obj.Subject & ".pdf"
   sPDFPath = "D:\Mail\Test\2018\"

Ist meine Pfandangabe richtig?
Und was muss ich ändern, wenn ich im sPDFName noch den Absender der Mail einfügen möchte.
Die Mailanhänge alle als PDF speichern. Möglich, wenn ja, wie?

Danke schon mal im Voraus für deine Bemühungen
Hi René,

vielen Dank für deine Erkärung.
(13.03.2018, 13:08)Bernie schrieb: [ -> ]Ist meine Pfandangabe richtig?
Wenn der Pfad existiert passt es.

(13.03.2018, 13:08)Bernie schrieb: [ -> ]Und was muss ich ändern, wenn ich im sPDFName noch den Absender der Mail einfügen möchte.
sPDFName = Format(Now, "YYYY-MM-DD") & "_" & obj.Subject & "_" & obj.SenderEmailAddress & ".pdf"


(13.03.2018, 13:08)Bernie schrieb: [ -> ]Die Mailanhänge alle als PDF speichern. Möglich, wenn ja, wie?
Das übersteigt meine Möglichkeiten. Wie man Bilder in PDF umwandelt ist mir nicht bekannt. Es gibt auch zuviele Programme für die einzelnen Dateitypen.
Seiten: 1 2