SMTP- / Mailversand von PDF Rechnungen an Faxserver aus SAP / PDF Drucker
Für ein deutsches Unternehmen wurde 7-PDF Printer als Netzwerkdrucker eingerichtet um diesen aus SAP für den PDF-Rechnungsversand zu nutzen. Die erzeugten PDF Dokumente wurden dabei nach Ihrer Erzeugung mittels SMTP an einen Faxserver übertragen und von diesem versendet. Die Faxnummer wurde von 7-PDF Printer zuvor vom Anwender per Input-Box angefragt und im VB-Script an den Faxserver weitergereicht.
Dieses Beispiel zeigt, wie mit wenigen Zeilen VBScript Code recht komplexe Prozesse mit 7-PDF Printer abgebildet werden können. Das nachfolgende Macro sollte auch als Grundlage dienen können, wenn Sie planen gedruckte PDF Dokumente automatisch per eMail versenden zu wollen.
Direkt gehts' nun auch!
Ab Version 12 die Ende Oktober 2020 erschienen ist, können sie auch direkt einen SMTP Server ganz ohne VBScript ansprechen, oder aber auch dynamisch den SMTP Server per VBScript zur Laufzeit ändern. Weitere Infos dazu finden sie hier...
- Dim global_success, faxnr, SMTPServer, Recipient, From, Subject, Message
- Sub OnConfigLoaded()
- Rem -- Modify the configuration to extract text from the printer
- Rem -- output.
- faxnr = InputBox("Faxnummereingabe (ohne Sonder- und Leerzeichen):", "Rechnung senden")
- Context("Config")("showsettings") = "never"
- Context("Config")("showpdf") = "no"
- Context("Config")("output") = "C:\pdf-processing\print\<date>-<time>.pdf"
- Context("Config")("superimpose") = "C:\pdf-processing\print\background.pdf"
- Context("Config")("author") = "<username>"
- Context("Config")("confirmoverwrite") = "no"
- Context("Config")("mergefile") = "C:\pdf-processing\print\agb.pdf"
- Context("Config")("mergeposition") = "top"
- End Sub
- Sub OnSuccess()
- global_success = true
- End Sub
- Sub OnAfterPrint()
- If global_success Then
- Rem -- Absender <username>@mailserver.de
- Rem -- Empfänger faxnr@fax.local
- SMTPServer = "smtp.mailserver.local"
- Recipient = faxnr & "@fax.local"
- From = Context("DocumentAuthor") & "@mailserver.de"
- Subject = "Ihre SAP Rechnung"
- Message = "Anbei erhalten Sie Ihre SAP - Rechnung fuer den
- Technikerauftrag des Technikers " & Context("DocumentAuthor")
- & vbcrlf & "Vielen Dank fuer Ihren Auftrag!"
- set msg = CreateObject("CDO.Message")
- msg.From = From
- msg.To = Recipient
- msg.Subject = Subject
- msg.TextBody = Message
- ' To add an attachment uncomment this line
- msg.AddAttachment Context("OutputFileName")
- msg.Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
- msg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
- msg.Configuration.Fields.Update
- msg.Send
- MsgBox "Die Rechnung wurde versendet."
- ' Del PDF
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- objFSO.DeleteFile(Context("OutputFileName"))
- Else
- MsgBox "Ein Fehler beim Rechnungsversand ist aufgetreten. Bitte versuchen Sie es erneut!"
- End If
- End Sub
Beispieldatei Download
Sie können den Beispielcode herunterladen. Die darin enthaltene VBS-Macrodatei verschieben Sie nach dem Entpacken bitte in den macros Ordner des PDF-Druckers (im Installationsverzeichnis). Sie können auch mit der Einstellung MacroDir ein anderes Verzeichnis festlegen.
Downloads
Anhang | Größe |
---|---|
Codebeispiel herunterladen | 1.1 KB |