PDF automatisch per Mail versenden / PDF Drucker
Der PDF Drucker kann nach dem erstellen einer PDF-Datei so eingerichtet werden das er diese PDF Datei automatisch mit Outlook, einem Exchange Server oder über einen IMAP Server per Mail versendet. Wie das funktioniert, wollen wir ihnen hier zeigen. Weiter unten finden sie auch eine Beschreibung zum direkten eMail Versand erzeugter PDF Dateien, denn ab Version 12 stehen ihnen auch diese Einstellungsoptionen zur Verfügung.
Aber kommen wir nun erst einmal zu den Möglichkeiten mit VBScript zu agieren, statt direkt. Wir nutzen dafür zum einen den eingebauten VBScript Event Handler unseres PDF Druckers und die MAPI Api um Outlook anzusprechen. Exemplarisch kann man aber auch, wie erwähnt durch wenige Zeilen Code anzupassen, auch einen Exchange Server oder auch einen IMAP Server (siehe Downloadbeispiel ganz unten) ansprechen! Das gezeigte Beispiel soll sie unterstützen, diese Automation zu realisieren.
Bitte beachten sie das dieses Beispiel zwingend eine Lizenzierung der Professional Edition, also eine license.xml Datei Professional voraussetzt, da der Event Handler erst ab der Professional Edition verwendbar ist.
In unserem Beispiel konfigurieren wir im Optionen Dialog Fenster unseren PDF Drucker im Tab/Reiter "E-Mail" vor, und geben dem PDF Drucker fest bereits die Mailadresse des Empfängers, Betreff und Bodytext mit. Für Umbrüche im Bodytext nutzen wir HTML Code und das bekannte <br> Tag. Statt diese Informationen fest vorzugeben, könnte man sie auch via VBScript und LDAP aus dem Active Directory auslesen. Auch das ist mit wenigen Zeilen Code möglich. Im Grunde kann man jede Datenquelle anzapfen und diese dann im VBScript Coding, welches im Nachfolgenden noch aufgeführt ist, in den Prozess einbinden und damit noch flexibler agieren. Für unser Beispiel beschränken wir uns aber erst einmal auf eine fixe Konfiguration die im PDF Drucker hinterlegt ist.
Abbildung: Fixe Mail Konfiguration von Empfänger, Betreff und Text.
Als nächstes kommen wir zum Eventhandler des PDF Druckers. Diesen können wir mittels eines kleinen Macro Scripts in VBScript anzapfen. Das Macro legen wir in den Macros Ordner des PDF Druckers ab. Dieser befindet sich immer im Installationspfad des PDF Druckers. Also zumeist unter:
C:\Programme\7-PDF\PDF Printer\Macros
Abbildung: Den VBScript Code speichern wir im Macros Ordner ab als mapi.vbs
Kommen wir zum eigentlichen Code unseres Beispiels den wir wie oben im Screenshot gezeigt im Verzeichnis Macros in der VBS Datei mapi.vbs abgespeichert haben.
Dim global_success Sub OnSuccess() global_success = true End Sub Sub OnAfterPrint() If global_success Then Rem -- Get the file name from the command line fn = Context("OutputFileName") Rem -- Get access to the Outlook application Set ol = CreateObject("Outlook.Application") Set ns = ol.getNamespace("MAPI") Rem -- Create the new mail Set newMail = ol.CreateItem(olMailItem) Rem -- Build eMail and attach the pdf file newMail.To = Context("Config")("emailto") newMail.Subject = Context("OutputFileName") + " " + Context("Config")("emailsubject") newMail.HTMLBody = Context("Config")("emailbody") newMail.Attachments.Add fn Rem -- Display the new message newMail.Display Rem -- Del PDF Rem -- Set objFSO = CreateObject("Scripting.FileSystemObject") Rem -- objFSO.DeleteFile(Context("OutputFileName")) Else MsgBox "An error has occurred. Please try again!" End If End Sub
Was macht das Script? Im Coding sehen wir zwei Events des PDF Druckers, OnSuccess()
und OnAfterPrint()
. Bei erfolgreicher PDF Erzeugung wird in OnSuccess()
eine globale Variable global_success auf TRUE gesetzt.
In OnAfterPrint()
wird darauf reagiert und im Erfolgsfalle die MAPI von Outlook angesprochen. Hier wird aus der Konfiguration des PDF Druckers der fixe Mailempfänger, Betreff und Bodytext ermittelt und damit die MAPI von Outlook befüllt. Als Attachment wird das File-Handle fn auf die zuvor vom PDF Drucker erzeugte PDF Datei gesetzt und diese an die eMail angefügt. Zum Schluss wird die eMail automatisch in Outlook aufgerufen. Statt newMail.Display
hätte man mit newMail.Send
den automatischen Versand durchführen können. Die auskommentierten unteren Zeilen VBScript Code würden die zuvor vom PDF Drucker erzeugte PDF Datei löschen.
Wie bereits erwähnt, soll das oben gezeigte Beispiel nur ein Einstieg für sie bieten und die Möglichkeiten unseres PDF Druckers verdeutlichen. Mit ein wenig Codezeilen kann man den PDF Drucker höchst effektiv nutzen und viele Prozesse Rund um das Thema PDF Erzeugung automatisieren. Und man benötigt keine weiteren Zusatztools sondern ausschließlich unseren PDF Drucker.
Optimieren Sie Ihre Druckprozesse mit dem 7-PDF Mailer Plug-In
Durch die Integration des 7-PDF Mailer Plug-Ins in Ihren 7-PDF Printer eröffnen sich neue Möglichkeiten zur Steuerung Ihrer Druckprozesse. Dieses Plug-In ermöglicht die nahtlose Einbindung externer Befehle (Steuercodes), um Ihre Druckvorgänge präzise zu steuern. Sobald das Plug-In mit einer Instanz Ihres 7-PDF Printers verknüpft ist, können Sie diese Steuercodes in Ihre Druckaufträge integrieren. Diese Codes lassen sich direkt in den Drucktext oder in Druckformulare einfügen, die aus Systemen wie ERP, CRM oder WaWi stammen. Mit nur wenigen einfachen Steuercodes können Sie beispielsweise Druckaufträge direkt per E-Mail versenden, wobei Sie den E-Mail-Text individuell anpassen können und noch vieles mehr. Eine umfassende Übersicht aller verfügbaren Steuercodes, einschließlich @@to
, finden Sie in der nachfolgenden Dokumentation.
PDF direkt versenden als eMail über SMTP
Ab Version 12 bietet unser PDF Drucker Einstellungsoptionen an, mit denen erzeugte PDF Dateien direkt via SMTP versendet werden können! Die Einstellungsoptionen hierzu finden sie hier. Der Unterschied zu den oben aufgeführten Optionen besteht darin, das sie gänzlich auf VBScript verzichten könnten. Sie könnten die neuen Einstellungen aber auch dafür nutzen in einem VBScript den SMTP Server zur Laufzeit zu ändern. Die Einstellungen können aber auch nur fest in den Konfigurationsdateien (INI-Dateien) des PDF Druckers vorgenommen werden. Auch bei der Installation einer PDF Netzwerkdrucker Instanz zum direkten Versenden von erzeugten PDF Dateien als eMail ist diese Möglichkeit durchaus hervorzuheben!
Welcher der hier aufgeführten Optionen für sie die Richtige ist, entscheiden sie als Kunde. Der PDF Drucker bietet zumindest für jeden Anwendungsfall die richtige Konfigurationsmöglichkeit für den PDF Druck und das anschließende Versenden per eMail an.
Email aus Druckdaten ermitteln und automatisch mailen
Wir möchten ihnen mit unserem hier gezeigten Beispiel VBScript Macro „pdfmailer.vbs“ zeigen, wie man einen automatischen Rechnungsdruck aus beispielsweise einem ERP System direkt an Empfänger per eMail senden kann, und die dafür nötige E-Mailadresse des Rechnungsempfängers aus den Druckdaten gewonnen wird.
PDF bei Bedarf des Anwenders mit Outlook versenden
Auf dieser Seite finden sie ein Beispiel wie man ein erzeugtes PDF direkt mit einem kleinen VBScript Programm versendet. Es ist ähnlich dem hier beschriebenen Ansatz arbeitet aber nicht als Macro. Eine Ausführung kann hier also nicht nur global konfiguriert werden, sondern auch individuell. D.h. das ein Anwender durch das gezielte Ausführen des VBScript Programms selbst steuern kann wann er ein erzeugtes PDF danach in Outlook übertragen und damit versenden möchte.
Beispiel Dateidownload
Sie können den Beispielcode (mapi-outlook.zip) hier herunterladen. Desweiteren haben wir hier noch ein Beispiel (send-mail-via-googlemail.vbs.zip) zum Download bereitgestellt, das zeigt wie man statt mittels Outlook einfach direkt den IMAP Server von Google Mail zum Versand erzeugter PDF Dateien verwendet. Stellen sie sicher das sie, die für sie passende VBS Datei, in den Macros Ordner des PDF Druckers kopieren wie oben gezeigt!
Downloads
Anhang | Größe |
---|---|
Codebeispiel herunterladen (mapi-outlook.zip) | 1.00 KB |
Codebeispiel herunterladen (send-mail-via-googlemail.vbs.zip) | 1.00 KB |