|
From: <ma...@us...> - 2012-01-02 12:08:35
|
Revision: 625
http://openautomation.svn.sourceforge.net/openautomation/?rev=625&view=rev
Author: makki1
Date: 2012-01-02 12:08:29 +0000 (Mon, 02 Jan 2012)
Log Message:
-----------
WireGate-Plugins: SMTP with SSL-only to simplify plugin as any provider supports SSL anyway
Modified Paths:
--------------
wiregate/plugin/generic/SMTP-eMail.pl
wiregate/plugin/generic/Watchdog-SMTP-eMail
Modified: wiregate/plugin/generic/SMTP-eMail.pl
===================================================================
--- wiregate/plugin/generic/SMTP-eMail.pl 2012-01-01 21:57:46 UTC (rev 624)
+++ wiregate/plugin/generic/SMTP-eMail.pl 2012-01-02 12:08:29 UTC (rev 625)
@@ -1,6 +1,8 @@
# Demo-Plugin zum eMail-Versand - einfache Version mit Text-only
# das macht nichts sinnvolles, sendet jede Stunde ein eMail,
# soll nur als Vorlage dienen
+# - mit SSL (alte Version ohne SSL sieh SVN rev 622)
+# - benoetigt Paket libnet-smtp-ssl-perl
# Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss!
@@ -16,29 +18,20 @@
my $text = "email-Body";
my $username = 'ab...@gm...'; #Anpassen! Username fuer SMTP-Server
my $password = "meinpasswort"; #Anpassen! Passwort fuer SMTP-Server
-my $mailserver='mail.gmx.net'; # SMTP-Relay: das muss natuerlich angepasst werden!
+my $mailserver='mail.gmx.net:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
+# oder z.B. smtp.gmail.com:465 fuer Gmail;
$plugin_info{$plugname.'_cycle'} = 3600;
#######################
### ENDE DEFINITION ###
#######################
-use Net::SMTP;
+use Net::SMTP::SSL;
use MIME::Base64;
-my $smtp = Net::SMTP->new($mailserver, Timeout => 20, Debug =>1) or return "Fehler beim verbinden zu $mailserver $!; $@";
-$smtp->auth($username,$password);
-$smtp->status() < 5
-or do {
- #Die smtp->auth Methode schlaegt fehl, also dann so
- $smtp->datasend("AUTH LOGIN\n") or return 'auth login problem $!';
- $smtp->response();
- $smtp->datasend(encode_base64( $username ) ) or return "username $username cannot be encoded or wrong $!";
- $smtp->response();
- $smtp->datasend(encode_base64( $password ) ) or return "password $password cannot be encoded or wrong $!";
- $smtp->response();
-};
-$smtp->status() < 5 or return "Auth failed: $! ". $smtp->status();
+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($Empfaenger) or return "Empfaenger $Empfaenger abgelehnt $!";
$smtp->data() or return "Data failed $!";
Modified: wiregate/plugin/generic/Watchdog-SMTP-eMail
===================================================================
--- wiregate/plugin/generic/Watchdog-SMTP-eMail 2012-01-01 21:57:46 UTC (rev 624)
+++ wiregate/plugin/generic/Watchdog-SMTP-eMail 2012-01-02 12:08:29 UTC (rev 625)
@@ -1,5 +1,7 @@
# Demo-Plugin zum prüfen auf Plugin Timeout-Fehler
-# und eMail-Versand
+# und eMail-Versand
+# - mit SSL (alte Version ohne SSL sieh SVN rev 622)
+# - benoetigt Paket libnet-smtp-ssl-perl
my $hostname = `hostname`;
@@ -12,16 +14,16 @@
my $Betreff = "Plugin-Alarm von $hostname !";
my $username = 'ab...@gm...'; #Anpassen! Username fuer SMTP-Server
my $password = "meinpasswort"; #Anpassen! Passwort fuer SMTP-Server
-my $mailserver='mail.gmx.net'; # SMTP-Relay: das muss natuerlich angepasst werden!
+my $mailserver='mail.gmx.net:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
+# oder z.B. smtp.gmail.com:465 fuer Gmail;
$plugin_info{$plugname.'_cycle'} = 300;
#######################
### ENDE DEFINITION ###
#######################
-use Net::SMTP;
+use Net::SMTP::SSL;
use MIME::Base64;
-# FIXME: require Authen/SASL ?
my ($ret,$err);
@@ -32,18 +34,8 @@
# Alert
if (!$plugin_info{$plugname2.'_timeout_alarm'}) {
# sende Warn-eMail
- my $smtp = Net::SMTP->new($mailserver, Timeout => 20, Debug =>1) or return "Fehler beim verbinden zu $mailserver $!; $@";
- $smtp->auth($username,$password);
- $smtp->status() < 5
- or do {
- #Die smtp->auth Methode schlaegt fehl, also dann so
- $smtp->datasend("AUTH LOGIN\n") or return 'auth login problem $!';
- $smtp->response();
- $smtp->datasend(encode_base64( $username ) ) or return "username $username cannot be encoded or wrong $!";
- $smtp->response();
- $smtp->datasend(encode_base64( $password ) ) or return "password $password cannot be encoded or wrong $!";
- $smtp->response();
- };
+ 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($Empfaenger) or return "Empfaenger $Empfaenger abgelehnt $!";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|