View difference between Paste ID: kXPLxzie and ZDzZWqKU
SHOW: | | - or go back to the newest paste.
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!
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
}