every pim sucks

Dieses Script in Kombination mit cron und at macht das Leben aber ein bissen angenehmer ...
Download Script

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" zeigt 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 <scripts at gpl.coulmann dot de>

LICENCE
      GNU GPL http://www.gnu.org/licenses/gpl.html



#!/usr/bin/perl
# schickt Mail aus per Parameter uebergebenen Angaben
# copyright Wulf Coulmann <scripts at gpl.coulmann dot de> 
# 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 <scripts at gpl.coulmann dot de>

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>){
             $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);