#!/usr/bin/perl # schickt Mail aus per Parameter uebergebenen Angaben # copyright Wulf Coulmann # GNU GPL # http://www.gnu.org/licenses/gpl.html # # Download me here: http://gpl.coulmann.de/mail_alert use strict; # start config (Default-Angaben fuer Absender-Email und Empfaenger-Email) my $to = 'konfiguriere mich'; my $from = 'konfiguriere mich'; # end config # Input for debugging my $input; foreach my $now (@ARGV){ $input .= $now . ' '; } # Manpage my $man = ' NAME mail_alert -- schickt E-mail SYNOPSIS mail_alert [-f FROM] [-t TO] [-b BODY] [-h] SUBJECT DESCRIPTION Generiert eine E-mail auf der Basis der uebergeben Parameter mit SUBJECT als Betreff, verwendet hierfuer Sendmail Vor der ersten Benutzung sind die default Parameter fuer "Sender-Mail-Adresse" ($from) und "Empfaenger-Mail-Adresse" ($to) _im_Programm_ zu definieren (oeffne dazu das Programm mit Deinem Lieblingseditor) OPTIONS -f "from" Absenderadresse (String) -t "to" Empfaengeradresse (String) -b "body" Mailinhalt (Datei oder String) -h "Hilfe" druckt diese Hilfe EXAMPLES Benutzung mit cron 0 0 15 10 * mail_alert "Oma hat in 3 Tagen Geburtstag!" Benutzung mit at echo "mail_alert \ -f \"ich@localhost\" \ -t \"meinFreund@server\" \ -b /home/ich/erinnerung.txt \ \"Bitte denk dran\"" \ | at teatime 05.08.06 AUTOR Wulf Coulmann LICENCE GNU GPL http://www.gnu.org/licenses/gpl.html '; my $config_me = ' ########################################### # Bitte konfiguriere erst das Script! # ########################################### '; my $bar = '========================================================================='; # wird Hilfe aufgerufen, oder ist das Script unconfiguriert? if ($input =~ m/-h/ ){ print $man; exit; }elsif ($to eq 'konfiguriere mich' || $from eq 'konfiguriere mich'){ print $config_me.$man.$config_me; exit; } # Parameteruebernahme my @input = @ARGV; my $subject = pop @input; my $body; while (my $opt = shift @input){ if ($opt eq '-f'){ $from = shift @input; }elsif($opt eq '-t'){ $to = shift @input; }elsif($opt eq '-b'){ $body = shift @input; if (-e $body){ open(BODY, "<$body") || print 'Fehler bei "mail_alert '.$subject.'" Konnte Datei mit Text fuer Body nicht oeffnen - Mailversand erfolgt _ohne_ Body'; $body = ''; while(){ $body .= $_; } close(BODY); } }else{ my $error = ' Fehler bei "mail_alert '.$input.'" Falsche Parameter! '; print $error.$bar.$man.$bar.$error; exit; } } if (length($subject)<1){ my $error = ' Keine SUBJECT uebergeben! '; print $error.$bar.$man.$bar.$error; exit; } my $nb; if (length($body) < 1 ){ $nb = ' nb'; } my $mail = 'From: '.$from.' To: '.$to.' Subject: [ nicht vergessen'.$nb.' ] '.$subject.' '.$body; open(MAIL, "|/usr/sbin/sendmail $to") || die 'Fehler beim Aufruf von Sendmail! Um diesen Fehler zu beheben Pruefe die MTA-Configuration. Mailversand abgebrochen!'; ; print MAIL $mail; close(MAIL);