joerg100
Goto Top

PDF auslesen und automatisch als E-Mail an Empfänger aus PDF senden

Hallo,
eine Frage, ähnlich zu PDF Dateien aus Verzeichnis automatisch per Email versenden, aber etwas komplexer. Ich wollte den alten Thread nicht unnötig neu öffnen.

Folgende Rahmenbesdingungen:
Wir nutzen Outlook 2010 lokal in einer Client Server Umgebung.
Unser CRM Programm erstellt personifizierte PDFs (z. B. Mahnungen), die neben der Anrede auch die E-Mail Adresse enthaöten, also jeweils individuell.
Wir speichern diese PDFs in einem Ordner und würden gerne den Versand an die Kunden automatisieren:

1. Erstelllen der PDFs mit Anschrift, Anrede und E-Mail Adresse.
2. Speichern der PDFs in einem eigenen Verzeichnis
3. autmoatisierter Versand der E-Mail an die im PDF angegebene Empfänger E-Mail Adresse über Outlook.
Ideal wäre auch noch das Auslesen der richtigen Anrede und Übernahme in den Text sowie unsere Kundennummer zur Aufnahme in den Betreff (unser CRM System liest dies wiederrum aus und speichert dann zum Kunden die Mail mit Anhang).
4. Verschieben des versandten PDFs in einen neuen Ordner.

Wir haben dies bereits über unseren Telefonanbieter bei Faxversand lösen können. Das Auslesen erfolgt dort über Ghost Script. Wir können auf die Erstlellung der PDFs einwirken und Steuercodes (unsichtbar - weiß auf weiß) aufnehmen.

Im Prinzip ist es die Lösung wie verlinkt, mit der Erweiterung, dass Daten ausgelesen werden und dann in die zu erstellende Mail übernommen werden (Mail Adresse, Anrede und Betreff).

Vielen Dank für Euren Support und Eure Unterstützung!

Viele Grüße
Georg

Content-ID: 564749

Url: https://administrator.de/forum/pdf-auslesen-und-automatisch-als-e-mail-an-empfaenger-aus-pdf-senden-564749.html

Ausgedruckt am: 25.12.2024 um 17:12 Uhr

laster
laster 14.04.2020 um 07:54:40 Uhr
Goto Top
Hallo Georg,

Unser CRM Programm erstellt personifizierte PDFs (z. B. Mahnungen), die neben der Anrede auch die E-Mail Adresse enthaöten, also jeweils individuell.
bedeutet: das CRM Programm hat alle Infos für die gewünschte Aktion.
Kann der Anbieter des CRM diese gewünschte Funktion nicht liefern? Weil, genau da rein gehört das.
Punkt 1 und 2 macht ja schon das CRM (oder?).
Punkt 3: die vom CRM System erzeugte Datei hat doch einen bestimmten Namen. Über diesen sollten nachträglich die Empfängerdaten auslesbar sein (CRM speichert Daten in SQL-DB?).
Wenn die Infos aus dem CRM auslesbar sind, kann dann per Script (läuft über den Taskplaner alle 5 Minuten) die E-Mail versendet werden.

vG
LS
joerg100
joerg100 14.04.2020 um 08:29:31 Uhr
Goto Top
Vielen Dank für den Ansatz, doch leider ist der CRM Anbieter sehr groß (Datev) und wir sehr klein, von dort ist keine Unterstützung zu erwarten.

Richtig, Punkt 1 und 2 ist der Ausgangspunkt, das ghewünschte Skript setzt bei Punkt 3 an.

Viele Grüße!
laster
laster 14.04.2020 um 08:38:24 Uhr
Goto Top
Bei Datev sollte sich doch in der DB alles Nötige finden lassen.
Wenn die PDF von Datev erstellt wird, wird das auch in einer Tabelle geloggt. Dann findest Du auch alle Daten (Empfänger, Anrede, E-Mail , ...) dazu. Mit diesen Daten dann per Script ist kein großes Problem.
Aber ich kann mir nicht vorstellen, dass das nicht in Datev selbst möglich ist. Vielleicht fehlt ein Modul. Frag mal bei dem Dienstleister nach, der euch Datev verkauft (und eingerichtet) hat.

vG
LS
143728
143728 14.04.2020 aktualisiert um 09:14:12 Uhr
Goto Top
Zitat von @laster:
Aber ich kann mir nicht vorstellen, dass das nicht in Datev selbst möglich ist. Vielleicht fehlt ein Modul. Frag mal bei dem Dienstleister nach, der euch Datev verkauft (und eingerichtet) hat.
Dito, ich auch nicht ...
Bsp. DATEV Hilfe: Mahnungen als E-Mail ausgeben

So eine Funktion ist heutzutage absoluter Standard und mittlerweile in jeder vernünftigen Faktura zu finden. Datev ist da keine Ausnahme, sonst würde das ehrlich gesagt keiner mehr kaufen.

Also gleich nach Erstellen der Mahnung die entsprechende Funktion des Programms nutzen und per Mail raus schicken, feddich.

Da sollte man erst gar nicht anfangen zu frickeln, zumal es hier ja um direkten Kundenkontakt geht!
Zeitgleich führt das Programm ja dann auch in der DB Buch das die Mahnung schon per Mail raus gegangen ist.

Aber bitte, wenn du unbedingt frickeln willst, gibts hier im Forum ja genug Input wie man PDFs ausliest, z.B.
Powerhellskript zum Auslesen von Kundennummern aus diversen PDFs, mit anschließender Umbenennung der Datei
monstermania
monstermania 14.04.2020 um 15:41:18 Uhr
Goto Top
Moin,
ich würde vom automatisierten Versand per Outlook die Finger lassen!
Wenn Du Mails automatisiert/programmgesteuert verschicken willst, dann nimm ein Tool wie z.B. blat!
(Native) PDF auslesen ist kein großes Ding. Dafür kann man gut das kostenlose PDF-Toolkit benutzen (pdftotext.exe).
Mit den Beiden Tools und etwas ps oder vbs ist ein automatischer Email-Versand sowie Deine weiteren Wünsche kein großes Problem.

Aber coden musst Du das Ganze schon selbst!

Gruß
Dirk
colinardo
Lösung colinardo 15.04.2020, aktualisiert am 18.04.2020 um 17:29:20 Uhr
Goto Top
Servus Georg, willkommen auf Administrator.de!

Das Thema Auslesen von Daten aus PDFs haben wir hier zwar schon x mal im Forum behandelt, aber was soll's, einmal mehr schadet nicht, zumal der von dir verlinkte Thread ja schon ein paar Jahre auf dem Buckel hat und auch nicht mehr wirklich der aktuellen Zeit entspricht face-wink.

Auch wenn ich den Workflow wie die anderen bereits erwähnt haben anders gestalten würde, hier mal ein Powershell-Code für dich als erstes Gerüst. (Kommentare siehe Code)

Ein Demo-Package bestehend aus Skript inkl. Beispiel-PDF darfst du gerne hier herunterladen:

back-to-toppdf_extract_mail_data_564749.zip


screenshot

Natürlich müssen vorher die SMTP-Server-Daten (region VARIABLEN) und die Mail-Adresse im Beispiel-PDF durch eine gültige ausgetauscht werden face-wink.

Natürlich kann das Beispiel nicht deine Situation zu 100% abdecken, aber das soll es ja auch nicht, das ist hier ja kein Auftrags-Arbeits-Forum face-wink.

Für persönliche Anpassungen => Bitte PN

Grüße Uwe
figarro
figarro 30.07.2021 um 16:42:35 Uhr
Goto Top
Hallo,

ich hab das mit dem script versucht, leider ohne erfolg.


1. eine gültige e-mail Adresse ins pdf geschrieben

2.Hab das script wie folgt angepasst:
#region VARIABLEN ---------------------------
# Pfad in dem die PDFs liegen (im Beispiel ein Unterordner 'pdf' im Skriptordner) 
$pdfquelle = "C:\Users\meinVerzeichnis\Desktop\pdf_extract_mail_data_564749\pdf"  
# Archivordner für die Ablage
$backupfolder = "C:\Users\meinVerzeichnis\Desktop\pdf_extract_mail_data_564749\archiv"  
# Pfad für ein Logfile
$LOGFILE = "C:\Users\meinVerzeichnis\Desktop\pdf_extract_mail_data_564749\sendlog.csv"  
# MAIL SETTINGS --------------------------
# Absenderadresse
$MAIL_FROM = 'meine@adresse.de'  
# SMTP Server
$MAIL_SMTP = 'smtp.strato.de'  
# SMTP PORT (SSL/TLS)
$MAIL_PORT = 587
# MAIL Username
$MAIL_USERNAME = 'mein@username.de'  
# Mail Password
$MAIL_PASSWORD = 'meinPW'  
# Betreffzeile
$MAIL_SUBJECT = 'Mahnung'  
# Mail Body (Der Platzhalter '##ANREDE##' wird durch die persönliche Anrede aus dem PDF ersetzt, ansonsten wird eine Standard-Anrede verwendet) 
$MAIL_BODY = @"  
<style type="text/css">  
body {font-family:sans-serif; font-size:0.9em;}
</style>

Allerdings habe ich das nur unter WIN10 in Parallels probiert weil ich einen Mac habe. Könnte das die Ursache sein das es nicht funktioniert? Gibt es sowas für den Mac? oder könnte jemand das auch für Mac schreiben?

Gruß Manfred
figarro
figarro 30.07.2021 aktualisiert um 18:49:34 Uhr
Goto Top
Hallo,

sollte sich jemand berufen fühlen mir das Script passend zu machen, wäre ich auch gerne bereit eine weitere Spende zu geben.

Gruß Manfred
figarro
figarro 30.07.2021 um 19:55:59 Uhr
Goto Top
So, hab das jetzt hinbekommen, läuft. - Super Script!

Vielen Dank!

Vielleicht hat ja jemand eine Idee wie ich das auf dem Mac realisieren könnte?

Gruß Manfred
figarro
figarro 30.07.2021 aktualisiert um 21:30:40 Uhr
Goto Top
Also....

ich hab jetzt Powershell für Mac installiert. - Ich kann das auch über Powershell für Mac öffnen, allerdings erhalte ich dann diese Fehlermeldung:

ParentContainsErrorRecordException: /Users/manfred/Desktop/pdf_extract/script.ps1:45
Line |
  45 |  [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.Secu …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception setting "SecurityProtocol": "The requested security protocol is not supported."  

Wenn ich die Zeile 45 im Script lösche läufts weiter und es wird auch sendlog.csv geschrieben.
Die Powershell bleibt danach aber mit folgender Fehlermeldung stehen:
Verarbeite Dokument '/Users/manfred/Desktop/pdf_extract/pdf/demo.pdf' ... Sende E-Mail ... WARNING: The command 'Send-MailMessage' is obsolete. This cmdlet does not guarantee secure connections to SMTP servers. While there is no immediate replacement available in PowerShell, we recommend you do not use Send-MailMessage at this time. See https://aka.ms/SendMailMessage for more information.  
Write-Error: nodename nor servname provided, or not known
InvalidOperation: /Users/manfred/Desktop/pdf_extract/script_Kopie.ps1:122
Line |
 122 |          if($reader){$reader.Dispose()}
     |                      ~~~~~~~~~~~~~~~~~
     | Method invocation failed because [iTextSharp.text.pdf.PdfReader] does not contain a method named 'Dispose'.  

Speichere Log ... OK

Kann mir hier vielleicht jemand weiterhelfen? - Wäre super!

Gruß Manfred
colinardo
Lösung colinardo 01.08.2021 aktualisiert um 16:51:59 Uhr
Goto Top
Servus Manfred
Zitat von @figarro:
ich hab jetzt Powershell für Mac installiert. - Ich kann das auch über Powershell für Mac öffnen, allerdings erhalte ich dann diese Fehlermeldung:
Das ist nicht weiter verwunderlich denn das Script ist ja primär für ein Windows System entwickelt worden.
Hab dir die Änderungen für MacOS hier mal als Paket zum Download zusammengestellt (getestet unter MacOS BigSur)
Download: pdf_extract_mail_data_macOS_564749.zip

Test auf MacOS BigSur:

screenshot

Vielleicht hat ja jemand eine Idee wie ich das auf dem Mac realisieren könnte?
Du könntest dir das ganze z.B. auch mit dem Bordmittel "Automator" zusammenklicken, der bietet von Haus aus Funktionen wie PDF zu Text und E-Mail Adress-Extrahierung, und das Verschicken von Mails via Mail App

screenshot

screenshot

Verfeinern lässt sich das via Shell-Skript/Applescript/Javascript/python Einbindung im Automator...

Grüße Uwe
figarro
figarro 02.08.2021 um 15:01:19 Uhr
Goto Top
Servus,

Automator, hört sich gut an, funktioniert bei mir aber leider nicht so wie ich es gerne hätte. Und ich weiß auch nicht wie das richtig hinbekommen könnte.
Hier mal mein Workflow:/Users/manfredtheuermann/Documents/Bildschirmfoto 2021-08-02 um 14.58.30.png
Der Automator schreibt zwar das *txt File, aber beim darauffolgenden Versuch die e-mail auszulesen scheitert er.

Hab zwar das System vom Automator verstanden, weiß aber nicht so recht damit umzugehen.

Vielen Dank für die Hilfe!
bildschirmfoto 2021-08-02 um 14.58.30
colinardo
colinardo 02.08.2021 aktualisiert um 15:05:38 Uhr
Goto Top
Ja das geht so nicht, ist doch etwas komplexer das damit aufzubauen aber machbar (nur gerade keine Zeit), in der Zwischenzeit kannst du dich ja an dem Powershell-Fix (s. Link im letzten Post) bedienen.
figarro
figarro 02.08.2021 um 15:48:19 Uhr
Goto Top
Vielen Dank für das Script für den Mac, - funktioniert!
colinardo
colinardo 02.08.2021 aktualisiert um 15:49:35 Uhr
Goto Top
Zitat von @figarro:
Vielen Dank für das Script für den Mac, - funktioniert!
👍
superguddy777
superguddy777 08.09.2023 aktualisiert um 13:12:00 Uhr
Goto Top
Tolles Script, danke face-smile
Habe aber eine Frage, und das kriege ich nicht hin... in meinen PDFs steht als Anrede im Dokument:

Liebe(r) Vorname.

Wie muss diese Zeile angepasst werden, dass für die Anrede eben Liebe(r) Vorname eingesetzt wird?

$mail_salutation = [regex]::match($content_firstpage,'(?is)Sehr geehrter? [^\r\n]+').Value

Ich blick bei regex nicht so ganz durch... face-wink
Dankeeeeee face-smile
superguddy777
superguddy777 08.09.2023 um 13:32:33 Uhr
Goto Top
Habe es hinbekommen... danke face-smile
$mail_salutation = [regex]::match($content_firstpage,'(?is)Liebe[^.]+').Value
superguddy777
superguddy777 04.01.2024 um 10:21:01 Uhr
Goto Top
Frohes neues allerseits face-smile
Habe mit dem Script doch noch ein Problem / eine Frage:
es gibt immer wieder PDF-Dokumente, wo das Script: "Achtung: Keine E-Mailadresse in diesem Dokument gefunden!" meldet.
Obwohl eine EMail-Adresse enthalten ist, und der Text im PDF auch lesbar (also nicht gescannt oder so) ist...
Hat jemand eine Idee, woran das liegen kann?

Vielen Dank!
colinardo
colinardo 04.01.2024 aktualisiert um 10:46:55 Uhr
Goto Top
Zitat von @superguddy777:
es gibt immer wieder PDF-Dokumente, wo das Script: "Achtung: Keine E-Mailadresse in diesem Dokument gefunden!" meldet.
Obwohl eine EMail-Adresse enthalten ist, und der Text im PDF auch lesbar (also nicht gescannt oder so) ist...
Hat jemand eine Idee, woran das liegen kann?

Servus, und ebenso frohes Neues.
Im Skript wird per Default nur die erste Seite nach der E-Mail durchsucht, war vom TO so gewünscht, lässt sich aber in Zeile 92 anpassen.

Falls die Adressen doch auf der ersten Seite stehen, kann ich dir gerne anbieten so ein betroffenes PDF-Dokument zur Analyse zu begutachten (Aber bitte per PN)

Grüße Uwe