Automatischer PDF Versand per Mail aus dem Explorer bzw. Ordner
Hallo und Moin.
ich muss regelmäßig E-Mails mit PDF's an bestimmte E-Mail Adressen versenden und anschließend sollen die PDF's in bestimmte Ordner verschoben werden. Dies Manuell zu machen ist sehr aufwändig und kostet viel Zeit. Es sind ca. 100 PDF's pro Tag.
Ich habe schon Google bemüht und bin auch fündig geworden. Ich habe über mehrere .vbs Skripts geschafft das die E-Mails versendet werden. So sieht das Skript aus:
Leider ist das Problem bei diesem Skript, das ich es manuell starten muss. Aufgabenplaner reagiert einfach nicht, auch nicht wenn ich die vbs Skripte in eine .bat Datei lege und zusammenstarten lassen will. Durch das manuelle Starten kommt es dazu das er nur einen Teil der Mails rausschickt (pro Mail wird nur ein PDF versendet). Meist kommt nur 1/3 der PDF's an. Ebenfalls kann das Skript kein HTTPS versandt ermöglichen.
Nun habe ich etwas weiter gegoogelt und habe ein Skript mit AutoIt gefunden. Das Skript passt nicht ganz zu meiner Idee. Leider kann ich nur googlen, nicht Programmieren.
Somit wäre ich über eure Hilfe dankbar.
Ich benötige ein Skript, gern über AutoIT (da der automatische Ablauf hier klappen sollte) welches regelmäßig einen oder mehrere Ordner überwacht und bei Ablage von PDF's diese per Mail versendet. die PDF's werden in unterschiedliche Ordner abgelegt. Je nach Ordner wird die PDF an eine andere E-Mail-Adresse versandt und in einen anderen Ordner kopiert.
Bedingungen:
Des Weiteren habe ich zwei Ordner in den PDF's abgelegt werden die dann ohne Mail versandt einfach in bestimmte Ordner verschoben werden sollen. Ich hatte leider vergebens versucht das obige Skript abzuändern.
Vielleicht kann mir der ein oder andere weiterhelfen. Ich wäre euch super dankbar dafür.
Mit freundlichem Gruß
Clemens
ich muss regelmäßig E-Mails mit PDF's an bestimmte E-Mail Adressen versenden und anschließend sollen die PDF's in bestimmte Ordner verschoben werden. Dies Manuell zu machen ist sehr aufwändig und kostet viel Zeit. Es sind ca. 100 PDF's pro Tag.
Ich habe schon Google bemüht und bin auch fündig geworden. Ich habe über mehrere .vbs Skripts geschafft das die E-Mails versendet werden. So sieht das Skript aus:
'-------------------------
'Ordner in dem die PDF Dateien liegen
FOLDER_PDF = "ORDNER"
' Ordner in dem Unterordner mit Datum erstellt werden und die PDFs dort rein verschoben werden
FOLDER_MOVE = "ORDNER"
'Pfad zur BLAT.exe
PATH_BLAT = "C:\Windows\System32\blat.exe"
' Mailserverdaten:
SMTP_SENDER = ""
SMTP_CC = ""
SMTP_SERVER = ""
SMTP_USERNAME = ""
SMTP_PASSWORD = ""
' -------------------------
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
For Each file In fso.GetFolder(FOLDER_PDF).Files
If LCase(fso.GetExtensionName(file.Path)) = "pdf" Then
sendNewMailViaBlat SMTP_SENDER,SMTP_CC,"MAIL","PDF eingetroffen","PDF im Anhang",file.Path,SMTP_SERVER,SMTP_USERNAME,SMTP_PASSWORD
fso.MoveFile file.Path , FOLDER_MOVE & "\"
wscript.sleep 6000
End If
Next
Function sendNewMailViaBlat(strFrom,strTo,strCC,strSubject,strBody,strAttachments,strSMTPServer,strSMTP_USER,strSMTP_PASS)
Set objShell = CreateObject("WScript.Shell")
objShell.Run """" & PATH_BLAT & """" & " -subject """ & strSubject & """ -body """ & strBody & """ -to " & strTo & " -cc " & strCC & " -f " & strFrom & " -server " & strSMTPServer & " -u """ & strSMTP_USER & """ -pw """ & strSMTP_PASS & """ -attach """ & strAttachments & """" ,0,True
set objShell = Nothing
End Function
Leider ist das Problem bei diesem Skript, das ich es manuell starten muss. Aufgabenplaner reagiert einfach nicht, auch nicht wenn ich die vbs Skripte in eine .bat Datei lege und zusammenstarten lassen will. Durch das manuelle Starten kommt es dazu das er nur einen Teil der Mails rausschickt (pro Mail wird nur ein PDF versendet). Meist kommt nur 1/3 der PDF's an. Ebenfalls kann das Skript kein HTTPS versandt ermöglichen.
Nun habe ich etwas weiter gegoogelt und habe ein Skript mit AutoIt gefunden. Das Skript passt nicht ganz zu meiner Idee. Leider kann ich nur googlen, nicht Programmieren.
Somit wäre ich über eure Hilfe dankbar.
Ich benötige ein Skript, gern über AutoIT (da der automatische Ablauf hier klappen sollte) welches regelmäßig einen oder mehrere Ordner überwacht und bei Ablage von PDF's diese per Mail versendet. die PDF's werden in unterschiedliche Ordner abgelegt. Je nach Ordner wird die PDF an eine andere E-Mail-Adresse versandt und in einen anderen Ordner kopiert.
Bedingungen:
- Absender: immer die gleiche Mail
- CC Kontroll-E-Mail: immer die gleiche Mail
- Anzahl der PDF pro Mail: maximal 20 PDF's
- Maximal MB pro Mail: maximal 20MB
- Empfänger: wechselt, je nach dem aus welchem Ordner gesendet werden soll
- Betreff: wechselt, je nach dem aus welchem Ordner gesendet werden soll
- Ordner in den die PDF liegen: Unterschiedliche Ordner
- PDF verschieben: wechselt, je nach dem aus welchem Ordner gesendet werden soll
- SMTP Protokoll: gern über HTTPS
Des Weiteren habe ich zwei Ordner in den PDF's abgelegt werden die dann ohne Mail versandt einfach in bestimmte Ordner verschoben werden sollen. Ich hatte leider vergebens versucht das obige Skript abzuändern.
Vielleicht kann mir der ein oder andere weiterhelfen. Ich wäre euch super dankbar dafür.
Mit freundlichem Gruß
Clemens
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1192873152
Url: https://administrator.de/forum/automatischer-pdf-versand-per-mail-aus-dem-explorer-bzw-ordner-1192873152.html
Ausgedruckt am: 07.05.2025 um 00:05 Uhr
4 Kommentare
Neuester Kommentar
Moin Moin
vor mehreren Jahren hat so etwas ähnliches ein Kollege mit PowerShell gelöst.
Er hat ein Skript geschrieben das über Scheduler gestartet wurde.
Das hat einen Ordner untersucht mit Powershell (Aufruf alle x minuten).
Dann hat er Outlook des aktuellen Kontos genommen als Vehikel, eine Mail mit festem Empfänger erstellt und die Daten versendet.
Dies alles im Hintergrund, der Benutzer hatte nur die Mail in gesendet.
Man kann sehr gut (zB mit Robocopy) Ordner durchsuchen lassen und die Daten in einen entsprechenden Ordner kopieren / verschieben.
Und dann mit Powershell zippen.
vor mehreren Jahren hat so etwas ähnliches ein Kollege mit PowerShell gelöst.
Er hat ein Skript geschrieben das über Scheduler gestartet wurde.
Das hat einen Ordner untersucht mit Powershell (Aufruf alle x minuten).
Dann hat er Outlook des aktuellen Kontos genommen als Vehikel, eine Mail mit festem Empfänger erstellt und die Daten versendet.
Dies alles im Hintergrund, der Benutzer hatte nur die Mail in gesendet.
Man kann sehr gut (zB mit Robocopy) Ordner durchsuchen lassen und die Daten in einen entsprechenden Ordner kopieren / verschieben.
Und dann mit Powershell zippen.
powershell.exe Compress-Archive -DestinationPath "ZIEL-Ort\Name.zip" -Path "Herkunft" -Update -CompressionLevel Optimal -Verbose
Ich habe es noch einmal gelesen.
Ich würde konkret folgendes machen:
Dies sollte man dann so oft machen wie man unterschiedliche Mail Ziele bzw Daten Inhalte hat.
Also alles nach
Ziel1
Ziel2
...
erst verschieben.
Dann nach
Ziel1-Send
Zippen
Direkt nach dem zippen verschieben nach
Ziel1-Ende
Und das dann parallel / zeitlich versetzt für
Ziel2
...
Ich würde konkret folgendes machen:
- Über den Scheduler einen Robocopy auftrag starten der Dauerhaft alle x Minuten die PDF aus dem Ursprung durchsucht und in Ziel 1 die verschiebt.
- Sind die Daten in Ziel 1 sollte das nächste Skript alle x+2minuten die enthaltenen PDF in Ziel1-Send Ordner zippen (ALS CMD MACHEN ! ) und anschließend verschieben in Ziel1-ENDE
- Dann mit dem Powershell Mail die zip verschicken und anschließend löschen
Dies sollte man dann so oft machen wie man unterschiedliche Mail Ziele bzw Daten Inhalte hat.
Also alles nach
Ziel1
Ziel2
...
erst verschieben.
Dann nach
Ziel1-Send
Zippen
Direkt nach dem zippen verschieben nach
Ziel1-Ende
Und das dann parallel / zeitlich versetzt für
Ziel2
...
Zippen hätte den Vorteil das es 1 Datei ist die weg gesendet wird.
Wenn nicht erlaubt ist es so das es nicht implementiert wird.
Ich habe mal gegoogelt nach:
powershell script send mails
Die Antworten sahen nett aus:
https://www.windowspro.de/script/send-mailmessage-e-mails-versenden-powe ...
http://woshub.com/send-mailmessage-sending-emails-powershell/
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Da PS sehr mächtig ist gibt es mehrere Hürden.
Die sollten genommen werden.
Zum Testen, bzw für Diagnose zwecke, gehe Ich den Umweg über die CMD.
Dort kann Ich natürlich dann nicht echte Scripte schreiben.
Beherrsche Ich auch noch nicht in PS
Aber 1-zeiler kann man ausführen lassen mit vorangestelltem powershell.exe.
Wenn nicht erlaubt ist es so das es nicht implementiert wird.
Ich habe mal gegoogelt nach:
powershell script send mails
Die Antworten sahen nett aus:
https://www.windowspro.de/script/send-mailmessage-e-mails-versenden-powe ...
http://woshub.com/send-mailmessage-sending-emails-powershell/
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Da PS sehr mächtig ist gibt es mehrere Hürden.
Die sollten genommen werden.
Zum Testen, bzw für Diagnose zwecke, gehe Ich den Umweg über die CMD.
Dort kann Ich natürlich dann nicht echte Scripte schreiben.
Beherrsche Ich auch noch nicht in PS
Aber 1-zeiler kann man ausführen lassen mit vorangestelltem powershell.exe.