Déterminez le courrier électronique à partir des données d'impression et envoyez-le automatiquement / Imprimante PDF
Script PDF Mailer: Déterminez l'adresse électronique du destinataire de la facture à partir de vos données d'impression et envoyez-la automatiquement par courrier électronique.
Avec notre exemple de macro VBScript "pdfmailer.vbs" présenté ici, nous aimerions vous montrer comment vous pouvez envoyer une impression automatique de facture à partir, par exemple, d'un système ERP directement aux destinataires par e-mail, et l'adresse e-mail nécessaire du destinataire de la facture est obtenue à partir des données d'impression. Le VBScript de notre PDFMailer lit l'adresse électronique requise du destinataire de la facture à partir des données d'impression et envoie le PDF de la facture précédemment généré sous la forme d'un courrier électronique entièrement automatique. L'exemple présenté ici devrait vous aider à mettre en œuvre vous-même vos exigences. En fonction de vos besoins et des circonstances, l'exemple présenté ici devra peut-être être adapté. Cependant, cela devrait vous permettre de commencer. Pour notre exemple, un serveur de messagerie commun (SMTP) est utilisé dans notre script. Un exemple fictif de calcul est utilisé comme base de calcul.
Exemple de facture avec l'adresse électronique du destinataire incluse (en rouge)
L'exemple de calcul sous forme de fichier DOC ainsi que le PDFMailer VBScript peuvent être téléchargés gratuitement ci-dessous. Vous pouvez donc le tester vous-même !
Pour ce faire, placez d'abord la macro VBScript PDF Mailer dans le InstallRoot de l'imprimante PDF et là, dans le répertoire Macros, c'est-à-dire généralement sous C:\Programmes\7-PDF\PDF Printer\Macros
.
Il est maintenant important d'adapter les données d'accès SMTP de la macro à votre serveur de messagerie à l'aide d'un éditeur tel que Notepad++, puis de sauvegarder le fichier VBScript adapté et modifié. Attention, vous pouvez avoir besoin de droits d'administrateur car ils sont situés sous C:\Programmes
.
Ouvrez ensuite notre exemple de facture dans Microsoft Word pour simuler l'impression d'une facture. Vous devez maintenant adapter l'adresse électronique du destinataire à vos souhaits (en rouge).
Imprimez maintenant l'exemple de calcul via l'imprimante 7-PDF ! La boîte de dialogue d'impression apparaît, vous saisissez un chemin de stockage du PDF et créez le PDF. À ce moment-là, un courriel est envoyé au destinataire. Et c'est entièrement automatique...
L'exemple présenté ici a pour but de vous montrer comment vous pouvez automatiser vos processus à un haut degré même avec 7-PDF Printer et quelques lignes de code VBScript. La voie de la numérisation n'est pas difficile!
Extension PDF Mailer par 7-PDF
Si vous ne maîtrisez pas VBScript et que vous avez besoin d'une solution standard pour l'intégration dans votre reporting à partir de WaWi, ERP ou CRM sans avoir besoin de développement personnalisé, le plug-in PDF Mailer 7-PDF est le choix idéal. En l'intégrant dans votre imprimante 7-PDF, vous améliorez considérablement sa fonctionnalité. Cela permet l'intégration de commandes externes (codes de contrôle) pour un contrôle précis de vos processus d'impression. Après avoir connecté avec succès le plugin à une instance de votre imprimante 7-PDF, vous avez la possibilité d'utiliser ces codes de contrôle dans vos travaux d'impression. Ces codes peuvent être insérés directement dans le texte imprimé ou dans les formulaires d'impression provenant de systèmes tels que ERP, CRM ou WaWi. Avec seulement quelques codes de contrôle simples, vous pouvez, par exemple, envoyer des travaux d'impression directement par e-mail et créer des messages e-mail individuels et d'autres personnalisations. Une vue d'ensemble complète de tous les codes de contrôle disponibles, y compris @@to
, se trouve dans la documentation ultérieure.
Faites attention au pilote d'imprimante
7-PDF Printer peut être installé en tant qu'imprimante réseau PDF en plus d'une installation classique en tant qu'application de bureau ou d'une installation d'imprimante PDF locale (standard). Le paramètre d'installation pour cela est /SHARE
.
Après l'installation comme imprimante réseau PDF, il peut être nécessaire de changer le pilote d'imprimante sélectionné après l'installation en 7-PDF Printer, comme indiqué dans la capture d'écran ci-dessous, afin d'extraire les données d'impression comme indiqué ici. Pour une plus grande compatibilité, un pilote Postscript du système d'exploitation peut être utilisé. Dans le cas de l'extraction de données d'impression, cependant, nous avons besoin d'un accès direct à celles-ci, et cela n'est possible que si l'instance d'imprimante réseau PDF (dans la capture d'écran "PDF-EXP-Prt") est exploitée sous le pilote d'imprimante "7-PDF Printer". Vous devez donc vous assurer que l'instance de l'imprimante utilise également le bon pilote d'imprimante.
Le paramètre extracttext
nécessite le pilote d'imprimante 7-PDF Printer.
Dans la macro ci-dessous, les données d'impression sont lues au moyen du paramètre extracttext
. La ligne de code pertinente ici est:
Context("Config")("extracttext") = "yes"
Remarque: à partir de Windows 10, vous devez désactiver temporairement le partage d'imprimante pour la durée du changement de pilote, sinon vous recevrez un message d'erreur du système d'exploitation.
Nous en arrivons maintenant au code réel de notre exemple, que nous avons enregistré dans le répertoire Macros dans le fichier VBS pdfmailer.vbs comme décrit ci-dessus.
Rem -- global vars Dim parsed_email Rem -- This script will illustrate how to extract and process the text Rem -- of the printed output. Sub OnConfigLoaded() Rem -- MsgBox "OnConfigLoaded" Rem -- Modify the configuration to extract text from the printer Rem -- output. Context("Config")("extracttext") = "yes" End Sub Sub OnPreprocessText() Rem -- MsgBox "ProcessText" Const ForReading = 1 Dim fn, f, fso Dim l, a, c, z Rem -- Get the name of the text file from the context object fn = Context("TextFileName") parsed_email = "-" Rem -- Parse Text from PDF line by line and find the E-Mail: part! Set fso = CreateObject("Scripting.FilesystemObject") Set f = fso.OpenTextFile(fn, ForReading) While Not f.AtEndOfStream Rem -- Read line-by-line from the text inside the pdf l = trim(f.ReadLine()) Rem -- We're looking for the E-Mail: ... line here. a = Mid(l,1,7) If a = "E-Mail:" Then c = Split(l) for each z in c If z <> "E-Mail:" Then Rem -- Split line by space! Rem -- Fill "parsed_email" with email. parsed_email = z End If Next End If Wend f.Close Rem -- Clean up Set fso = Nothing End Sub Sub OnMacrosApplied Rem -- MsgBox parsed_email Rem -- Make sure the configuration isn't reloaded because of an option set selection. Context("Config")("rememberlastoptionset") = "no" Rem -- Don't like to open/show the generated pdf here after mail sending... Context("Config")("showpdf") = "no" End Sub Sub OnAfterPrint() Rem -- After the pdf is successfull generated, we send them via SMTP to Rem -- the recipient that we have parsed before... Rem -- Send mail. Context("Config")("email") = "yes" Context("Config")("emailclienttype") = "smtp" Rem -- send email to the mail address inside the pdf text! Context("Config")("emailfrom") = "FROM@YOURSERVER.COM" Context("Config")("emailto") = parsed_email Context("Config")("emailsubject") = "Your Invoice!" Rem -- we would like html as body text to format it. Context("Config")("emailbodytype") = "html" Context("Config")("emailbody") = "Attached you will find your invoice as PDF!<br><b>Regards from XYZ Company!</b>" Rem -- Send per SMTP Server Context("Config")("emailserver") = "SMTP.YOURSERVER.COM" Rem -- We use port 465 for SSL Context("Config")("emailport") = "465" Rem -- Login Data for your SMTP Server Context("Config")("emailusessl") = "yes" Context("Config")("emailuser") = "YOUR_SMTP_USERNAME" Context("Config")("emailpassword") = "YOUR_SMTP_PASSWORD" MsgBox "The invoice should have been sent by mail, now!" End Sub
Téléchargement du fichier d'exemple
Vous pouvez télécharger gratuitement ici l'exemple de code (pdfmailer.vbs.zip) mais aussi l'exemple de facture (invoiceexample.doc.zip).
Downloads
Attachement | Taille |
---|---|
Télécharger l'exemple de code (pdfmailer.vbs.zip) | 1.90 KB |
Télécharger un exemple de facture (invoiceexample.doc.zip) | 20.10 KB |