Guest User

Untitled

a guest
Nov 3rd, 2012
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Plugin zum versenden von Emails beim Empfang eines definierten Werts auf einer definierten GA
  2. #Mehrere Mails an einer GA sind derzeit nicht möglich!
  3. # - benoetigt Paket libnet-smtp-ssl-perl
  4. # Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss!
  5. my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
  6. my $hostname = `hostname`;
  7.  
  8. ##################
  9. ### DEFINITION ###
  10. ##################
  11.  
  12. my $Absender = 'WireGate <[email protected]>'; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
  13. my $username = 'username; #Anpassen! Username fuer SMTP-Server
  14. my $password = 'pw'; #Anpassen! Passwort fuer SMTP-Server
  15. my $mailserver='smtp.gmail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!';
  16.  
  17.  
  18.  
  19.  
  20.  
  21. my @actionGA;
  22. push @actionGA, { name => "Alarmanlage", email_adress => '********@t-d1-sms.de, *****@gmx.de', email_subject => "Alarmanlage", email_text => "Alarmanlage hat um $hour:$min ausgelöst.", sms_number => "49175****", sms_text => "alarmanlage bla bla", trigger_ga => "8/1/1", value => 1 };
  23.  
  24.  
  25. #######################
  26. ### ENDE DEFINITION ###
  27. #######################
  28. $plugin_info{$plugname.'_cycle'} = 3600;
  29.  
  30.  
  31.  
  32. use Net::SMTP::SSL;
  33. use MIME::Base64;
  34.  
  35. foreach my $element (@actionGA) {
  36.     my $email_adress = $element->{email_adress};
  37.     my $email_subject = $element->{email_subject};
  38.     my $email_text = $element->{email_text};
  39.     my $sms_number = $element->{sms_number};
  40.     my $sms_text = $element->{sms_text};
  41.     my $trigger_ga = $element->{trigger_ga};
  42.     my $value = $element->{value};
  43.  
  44.     $plugin_subscribe{$trigger_ga}{$plugname} = 1;
  45.  
  46.     if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" ) {       
  47.    
  48.        
  49.        
  50.         #send email only if email_vars are used
  51.         if(defined $email_adress && defined $email_subject && defined $email_text) {
  52.             #send_email($email_adress, $email_subject, $email_text);
  53.        
  54.    
  55.             my $smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10) or return "Fehler beim verbinden zu $mailserver $!; $@";
  56.             $smtp->auth($username,$password) or return "SASL Auth failed $!;$@"; # try SASL
  57.             $smtp->status() < 5 or return "Auth failed: $!; $@ ". $smtp->status();
  58.             $smtp->mail($Absender) or return "Absender $Absender abgelehnt $!";
  59.             $smtp->to(split(',',$email_adress)) or return "Empfaenger $email_adress abgelehnt $!";
  60.             $smtp->data() or return "Data failed $!";
  61.             $smtp->datasend("To: $email_adress\n") or return "Empfanger $email_adress (Header-To) abgelehnt $!";
  62.             $smtp->datasend("Subject: $email_subject\n") or return "Subject $email_subject abgelehnt $!";
  63.             $smtp->datasend("\n") or return "Data failed $!";
  64.             $smtp->datasend("$email_text\n") or return "Data failed $!";
  65.             $smtp->dataend() or return "Data failed $!";
  66.             $smtp->quit or return "Quit failed $!";
  67.            
  68.             return; # keine Logausgabe
  69.             return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text";   
  70.         }
  71.        
  72.         if(defined $sms_number && defined $sms_text) {
  73.             my $file = "/var/spool/sms/outgoing/".$plugname."-".($year+1900)."-".$mon."-".$mday."-".$hour."-".$min."-".$sec;
  74.             my $mes_val = "To: ".$sms_number."\n"."\n".$sms_text;          
  75.            
  76.             open (SMS,">$file") || die "Fehler $!";
  77.             print SMS $mes_val;
  78.             close SMS; 
  79.         }
  80.    
  81.     }  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment