Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Plugin zum versenden von Emails beim Empfang eines definierten Werts auf einer definierten GA
- #Mehrere Mails an einer GA sind derzeit nicht möglich!
- # - benoetigt Paket libnet-smtp-ssl-perl
- # Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss!
- my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
- my $hostname = `hostname`;
- ##################
- ### DEFINITION ###
- ##################
- my $Absender = 'WireGate <[email protected]>'; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
- my $username = 'username; #Anpassen! Username fuer SMTP-Server
- my $password = 'pw'; #Anpassen! Passwort fuer SMTP-Server
- my $mailserver='smtp.gmail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!';
- my @actionGA;
- 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 };
- #######################
- ### ENDE DEFINITION ###
- #######################
- $plugin_info{$plugname.'_cycle'} = 3600;
- use Net::SMTP::SSL;
- use MIME::Base64;
- foreach my $element (@actionGA) {
- my $email_adress = $element->{email_adress};
- my $email_subject = $element->{email_subject};
- my $email_text = $element->{email_text};
- my $sms_number = $element->{sms_number};
- my $sms_text = $element->{sms_text};
- my $trigger_ga = $element->{trigger_ga};
- my $value = $element->{value};
- $plugin_subscribe{$trigger_ga}{$plugname} = 1;
- if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" ) {
- #send email only if email_vars are used
- if(defined $email_adress && defined $email_subject && defined $email_text) {
- #send_email($email_adress, $email_subject, $email_text);
- my $smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10) or return "Fehler beim verbinden zu $mailserver $!; $@";
- $smtp->auth($username,$password) or return "SASL Auth failed $!;$@"; # try SASL
- $smtp->status() < 5 or return "Auth failed: $!; $@ ". $smtp->status();
- $smtp->mail($Absender) or return "Absender $Absender abgelehnt $!";
- $smtp->to(split(',',$email_adress)) or return "Empfaenger $email_adress abgelehnt $!";
- $smtp->data() or return "Data failed $!";
- $smtp->datasend("To: $email_adress\n") or return "Empfanger $email_adress (Header-To) abgelehnt $!";
- $smtp->datasend("Subject: $email_subject\n") or return "Subject $email_subject abgelehnt $!";
- $smtp->datasend("\n") or return "Data failed $!";
- $smtp->datasend("$email_text\n") or return "Data failed $!";
- $smtp->dataend() or return "Data failed $!";
- $smtp->quit or return "Quit failed $!";
- return; # keine Logausgabe
- return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text";
- }
- if(defined $sms_number && defined $sms_text) {
- my $file = "/var/spool/sms/outgoing/".$plugname."-".($year+1900)."-".$mon."-".$mday."-".$hour."-".$min."-".$sec;
- my $mes_val = "To: ".$sms_number."\n"."\n".$sms_text;
- open (SMS,">$file") || die "Fehler $!";
- print SMS $mes_val;
- close SMS;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment