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.