Automailer

Nützliche Programme zu Zeiterfassung, Dokumentenmanagement etc.
Antworten
wolle
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 9468
Registriert: 16. Jan 2008 12:54
Land: Deutschland

Automailer

Ich suche ein kleines Tool, was ein Verzeichnis überwacht, in dem ab und an PDF-Dateien landen. Diese sollen dann per Email versendet und anschließend gelöscht werden. Bis jetzt hab ich nur den Automailer Freeware gefunden, dieser unterstützt aber keine SSL-Verschlüsselung in der Kommunikation mit dem SMTP-Server, das gefällt mir nicht sonderlich. Es gibt angeblich eine Pro-Version, aber das find ich nur auf anrüchigen Shareware-Seiten.
Sowas muss es doch eigentlich zu Hauf geben?


3 Monate gratis Händlerbund
MrCocktail
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 677
Registriert: 8. Okt 2007 14:14
Land: Deutschland

Re: Automailer

wolle hat geschrieben:Ich suche ein kleines Tool, was ein Verzeichnis überwacht, in dem ab und an PDF-Dateien landen. Diese sollen dann per Email versendet und anschließend gelöscht werden. Bis jetzt hab ich nur den Automailer Freeware gefunden, dieser unterstützt aber keine SSL-Verschlüsselung in der Kommunikation mit dem SMTP-Server, das gefällt mir nicht sonderlich. Es gibt angeblich eine Pro-Version, aber das find ich nur auf anrüchigen Shareware-Seiten.
Sowas muss es doch eigentlich zu Hauf geben?
Hi,

Im Zweifel mit Powershell Skripten und per Task ausführen... sollte keine halbe Stunde dauern.

Kann ich dir morgen schnell machen

Gruß
J


Gesendet von iPad mit Tapatalk
MrCocktail
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 677
Registriert: 8. Okt 2007 14:14
Land: Deutschland

Re: Automailer

Und auch wenn ich mir ungerne selber antworte, hier einmal die Lösung als Powershell Script, Speichern als .ps1 an beliebiger Stelle, in der Aufgabenplanung einbinden und alle 5min laufen lassen.

Die Variablen oben müssen noch kurz durch passende Einträge ersetzt werden

Code: Alles auswählen

# Powershell Script um die Dateien in einem Verzeichnis per
# Mail zu versenden und diese danach zu verschieben
# Version 0.1
#
#
# Variablenangaben Aenderungen sollten nur hier notwendig sein

$Pfad = 'c:\Beispiel\'
$Empfaenger ='Empfaenger@example.com'
$Sender = 'Absender@example.com'
$Mailserver = 'mailserver@example.com'
$SMTPBenutzer = 'Anmeldenamen für den Mailserver'
$SMTPKennwort = 'Kennwort für den Mailserver'
$SMTPPort = '587'

# Ab hier sollten keine Aenderungen notwendig sein
# 
# Kennwort für den Mailversand zusammenbauen
$SMTPKennwortSec = $SMTPKennwort | ConvertTo-SecureString -AsPlainText -Force
$Anmeldung = New-Object System.Management.Automation.PSCredential -ArgumentList $SMTPBenutzer, $SMTPKennwortSec
 
# Auslesen des Pfades und Mailversand der Datei / inkl. loeschen der Datei
$Data = Get-ChildItem $Pfad
foreach ($Datei in $Data) {
    $Betreff = "Es wurde eine Datei mit dem Namen " +$Datei.Name+" versendet"
    Send-MailMessage -from $Sender -To $Empfaenger -Subject $Betreff -SmtpServer $Mailserver -Credential $Anmeldung -Port $SMTPPort -UseSsl -Attachments $Datei.FullName
    Remove-Item $Datei.FullName
    }
wolle
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 9468
Registriert: 16. Jan 2008 12:54
Land: Deutschland

Re: Automailer

Vielen Dank!

Funktioniert das auch, wenn mehrere Dateien vorhanden sind? Werden dann alle Dateien in eine Email angehangen oder wird eine separate Mail erstellt? Kann man das Skript auch 2x laufen lassen, mit zwei verschiedenen Varianten? D.h. Verzeichnis 1 wird dahin gemailt, Verzeichnis 2 dahin?
MrCocktail
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 677
Registriert: 8. Okt 2007 14:14
Land: Deutschland

Re: Automailer

Hi,

kurze Antworten:
  • das Script versendet je vorhandener Datei eine E-Mail, und löscht Sie direkt...
  • du kannst beliebig viele Instanzen unter verschiedenen Namen laufen lassen oder in einer Datei, hierzu einfach das ganze Script noch einmal unter das erste kopieren und die Variablen verändern
Ich habe es bei mir durchgetestet, funktioniert beides zuverlässig und schnell.

Gruß
J
wolle
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 9468
Registriert: 16. Jan 2008 12:54
Land: Deutschland

Re: Automailer

Top, du hast was gut bei mir ;) saufen
MrCocktail
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 677
Registriert: 8. Okt 2007 14:14
Land: Deutschland

Re: Automailer

wolle hat geschrieben:Top, du hast was gut bei mir ;) saufen
Kein Thema... Das waren jetzt keine 30min, am meisten musste ich mit der Anmeldung am SMTP Server überlegen, dass muss ich in meinen Umgebungen normal nicht :-)

Rest war einfach, und ich kann immer nur wieder empfehlen, sich zwischendurch mit der Powershell auseinanderzusetzen (okay, vielleicht nicht als Geschäftsführer....) aber die Scriptsprache kann richtig was.

Gruß
J
wolle
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 9468
Registriert: 16. Jan 2008 12:54
Land: Deutschland

Re: Automailer

Ohne unverschämt werden zu wollen:
Ginge es auch, dass das Skript die Datei in ein weiteres, zu benennendes Verzeichnis verschiebt?

P.S. Ganz unbegabt bin ich bei sowas nicht, ich hab nur selten die Muße, es ordentlich zu machen, und im konkreten Fall hätte ich z.B. Angst, ein Amokskript zu entwerfen, das aus Versehen den ganzen Datenbestand löscht.
MrCocktail
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 677
Registriert: 8. Okt 2007 14:14
Land: Deutschland

Re: Automailer

Hi,

aber sicher...
Ich habe das löschen rausgenommen und ganz am Schluss ein verschieben eingebaut, einzige kleine Einschränkung, wenn man als Beispiel wie folgt verschieben will c:\Dateien\ nach c:\Dateien\Backup gibt es eine Fehlermeldung, weil man das Verzeichnis Backup nicht nach Backup verschieben kann...

Da alle anderen Dateien wie gewünscht verschoben werden, war ich jetzt einmal faul und habe kein Errorhandling eingebaut.

Code: Alles auswählen

# Powershell Script um die Dateien in einem Verzeichnis per
# Mail zu versenden und diese danach zu verschieben
# Version 0.2
#
#
# Variablenangaben Aenderungen sollten nur hier notwendig sein

$Pfad = 'c:\Beispiel\'
$PfadMove = 'c:\Backup\'
$Empfaenger ='Empfaenger@example.com'
$Sender = 'Absender@example.com'
$Mailserver = 'mailserver@example.com'
$SMTPBenutzer = 'Anmeldenamen für den Mailserver'
$SMTPKennwort = 'Kennwort für den Mailserver'
$SMTPPort = '587'

# Ab hier sollten keine Aenderungen notwendig sein
#
# Kennwort für den Mailversand zusammenbauen
$SMTPKennwortSec = $SMTPKennwort | ConvertTo-SecureString -AsPlainText -Force
$Anmeldung = New-Object System.Management.Automation.PSCredential -ArgumentList $SMTPBenutzer, $SMTPKennwortSec
 
# Auslesen des Pfades und Mailversand der Datei 
$Data = Get-ChildItem $Pfad
foreach ($Datei in $Data) {
    $Betreff = "Es wurde eine Datei mit dem Namen " +$Datei.Name+" versendet"
    Send-MailMessage -from $Sender -To $Empfaenger -Subject $Betreff -SmtpServer $Mailserver -Credential $Anmeldung -Port $SMTPPort -UseSsl -Attachments $Datei.FullName
    }
Get-ChildItem $Pfad | Move-Item -Destination $PfadMove
qds1
Beiträge: 553
Registriert: 30. Jun 2016 18:51

Re: Automailer

Jetzt das Ganze noch bitte als Pearlscript oder in php aetsch

Nee Spaß, super Arbeit. Auch von mir gibt's ein Danke! Habe was dazu gelernt :daumenhoch:

Da das Script im Klartext abgespeichert wird, sollte man für eine sichere Arbeitsumgebung sorgen und für den SMTP Server auf gar keinen Fall das Passwort verwenden, was man sonst verwendet.

LG
wolle
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 9468
Registriert: 16. Jan 2008 12:54
Land: Deutschland

Re: Automailer

Ich bin offenkundig zu doof dafür :-( Er wirft mir immer eine Fehlermeldung aus: Es wurde kein Parameter gefunden, der dem Parameternamen "Port" entspricht. Ich versteh einfach nicht, wieso?
qds1
Beiträge: 553
Registriert: 30. Jun 2016 18:51

Re: Automailer

Du bist mitnichten zu doof. Der Powershellmailer braucht keinen Port. Das Script kommuniziert mit dem Server und fragt selber an. So mein Verständnis.
Habe es getestet und folgendes Script läuft bei mir super:
# Powershell Script um die Dateien in einem Verzeichnis per
# Mail zu versenden und diese danach zu verschieben
# Version 0.2
#
#
# Variablenangaben Aenderungen sollten nur hier notwendig sein

$Pfad = 'c:\Beispiel\'
$PfadMove = 'c:\Backup\'
$Empfaenger ='Empfaenger@example.com'
$Sender = 'Absender@example.com'
$Mailserver = 'mailserver@example.com'
$SMTPBenutzer = 'Anmeldenamen für den Mailserver'
$SMTPKennwort = 'Kennwort für den Mailserver'

# Ab hier sollten keine Aenderungen notwendig sein
#
# Kennwort für den Mailversand zusammenbauen
$SMTPKennwortSec = $SMTPKennwort | ConvertTo-SecureString -AsPlainText -Force
$Anmeldung = New-Object System.Management.Automation.PSCredential -ArgumentList $SMTPBenutzer, $SMTPKennwortSec

# Auslesen des Pfades und Mailversand der Datei
$Data = Get-ChildItem $Pfad
foreach ($Datei in $Data) {
$Betreff = "Es wurde eine Datei mit dem Namen " +$Datei.Name+" versendet"
Send-MailMessage -from $Sender -To $Empfaenger -Subject $Betreff -SmtpServer $Mailserver -Credential $Anmeldung -UseSsl -Attachments $Datei.FullName
}
Get-ChildItem $Pfad | Move-Item -Destination $PfadMove
Wie du siehst, habe ich nur die Portangabe gelöscht. Jedoch gilt nach wie vor: Du speicherst dein Passwort im Klartext ab. Deswegen solltest du ein einzigartiges Passwort verwenden und das Script nur in sicherer Umgebung laufen lassen.
wolle
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 9468
Registriert: 16. Jan 2008 12:54
Land: Deutschland

Re: Automailer

Neue Fehlermeldung: (nachdem ich das Zertifkat installiert habe und da keine Fehlermeldung mehr erschien). Relay not permitted. Wir sind bei Domainfactory. Offenbar versucht das Skript, ohne Anmeldung zu versenden. Kopiert hab ich sicherlich richtig ;), Benutzername und Passwort sind auch korrekt (bzw. wären sie verkehrt, käme wohl auch eine andere Fehlermeldung). Ich bin mal wieder ratlos?
MrCocktail
PLUS-Mitglied
PLUS-Mitglied
Beiträge: 677
Registriert: 8. Okt 2007 14:14
Land: Deutschland

Re: Automailer

wolle hat geschrieben:Ich bin offenkundig zu doof dafür :-( Er wirft mir immer eine Fehlermeldung aus: Es wurde kein Parameter gefunden, der dem Parameternamen "Port" entspricht. Ich versteh einfach nicht, wieso?
Hi,

kann ich mir gerne anschauen, als Mod solltest du meine Mailadresse ja sehen können...

Und nein, da ich nur noch als Hobby hier bin, schaffe ich mir keine Plusmitgliedschaft an, auch wenn ich Fossi da sehr gut verstehe.

Gruß
J


Gesendet von iPad mit Tapatalk
Antworten

Zurück zu „Office-Programme & Tools“

  • Information