Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Im funktionierenden Plugin wird der Absender (wird zur Autenzierung benötigt) wie folgt übergeben:
Code:
$smtp->datasend("From: $Absender\n") or return "Absender $Absender (Header-From) abgelehnt $!";
Diese Zeile fehlt in den anderen beiden Plugins. Desshalb wird die Mail wohl vom Server abgelehnt
Dieser Eintrag hat nichts mit der Authentifizierung zu tun, sondern nur mit dem Mail Header selbst. Die Ergänzung im Header hatte ich gewünscht, da sonst manche Mail Provider bei Empfang einer Nachricht ohne Absender im Header ein leeres "Von" Feld anzeigen (bei mir gmx.net).
ich hab' nun mal beides auch in abwechselnder Kombi probiert-ohne Erfolg.
Beim funktionierenden Plugin wird der entsprechende Eintrag in das Log geschrieben.
Beim anderen Plugin, wird nach dem GA-Signal nichts geschrieben.
Ich habe verschiedene GA schon probiert.
allerdings habe ich eine Veränderung durchgeführt:
Die Zeile $smtp->to(split(',',$email_adress)) habe ich ohne den Split, also $smtp->to($email_adress)
Warum das so in meinem Skript ist weiß ich leider nicht mehr, ist aber evtl. ein Anhaltspunkt für Dich. Das Skript läuft bei mir sowohl mit GMX als auch mit WEB.DE, besondere Authentifizierungen etc. waren/sind nicht notwendig.
Cheers,
Oliver
Danke Makki. Ich wüsste nicht warum meine IP blacklisted sein sollte.
Ich lass es erstmal sein. Ich wollte die Email als Trigger für die Steuerung meines Visu-Androiden mit Tasker verwenden. Dafür gibt es allerdings noch die Möglichkeit per Autoremote mit http-Aufruf.
Jep, habe ich bekommen aber eben erst ins Testsystem eingebaut
Anyway, geht auf Anhieb wunderbar!
Also bleiben die Punkte, warum ich sowas niemals-nicht gerne als "Feature" verkaufen würde (Supportaufwand=?!):
ich vermute deine Client-IP steht auf so vielen Blacklisten, das keiner Lust hat das anzunehmen..
Für weitere Diagnose wäre der lokale eMail-Client (Thunderbird o.ä.) hilfreicher, wenns damit geht, was die eMail in den Headern sagt wenn sie denn angekommen ist.
Das WG-Plugin tut da nichts anderes, ganz banal..
hier mal das Testplugin mit zykl. Senden. Ich habe nur meine Zugangsdaten und das Ausführungsintervall geändert.
Code:
# 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!
my $hostname = `hostname`;
##################
### DEFINITION ###
##################
my $Empfaenger = '*****@gmail.com'; # Anpassen, mehrere mit ,
#my $Absender = 'WireGate <*****@gmail.com>'; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
my $Absender = 'WireGate <*****@gmx.de>'; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
my $Betreff = "eMail von $hostname";
my $text = "email-Body - langer Text mit sinnvollem Inhalt für den Spamfilter und so";
my $username = '****@gmx.de'; #Anpassen! Username fuer SMTP-Server
my $password = "****"; #Anpassen! Passwort fuer SMTP-Server
my $mailserver='mail.gmx.net:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
#my $mailserver='smtp.gmail.com: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::SSL;
use MIME::Base64;
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(',',$Empfaenger)) or return "Empfaenger $Empfaenger abgelehnt $!";
$smtp->data() or return "Data failed $!";
$smtp->datasend("To: $Empfaenger\n") or return "Empfanger $Empfaenger (Header-To) abgelehnt $!";
$smtp->datasend("Subject: $Betreff\n") or return "Subject $Betreff abgelehnt $!";
$smtp->datasend("\n") or return "Data failed $!";
$smtp->datasend("$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 $Empfaenger Betreff $Betreff gesendet: $text";
Das o.g. Plugin läuft wie gesagt mit zwei GMail-Adressen. Bei GMX als Absender kam unter "Rückgabewert" bisher die Meldung: "Fehler beim verbinden zu mail.gmx.net:465 ;". Ich schreibe bisher, da es gerade nachdem ich das Plugin im Webmin-Editor zum Kopieren des Codes geöffnet und wieder gespeichert habe, funktionierte und ich eine Mail von GMX bekommen habe. Wie gesagt, keine Änderung am Code, nur Öffnen, Kopieren und Speichern. Bei einer Mail blieb es allerdings. Nach dem erneuten Aufruf nach Ablauf der 300s kam wieder "Fehler beim verbinden zu mail.gmx.net:465 ;". Nach 15min kam dann wieder eine Mail.
Außerdem versuche ich wie gesagt das email_triggered_by_ga.pl aus dem SVN zum Laufen zu bringen. Der Code dazu:
Code:
#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,$day,$month,$yr19,@rest) = localtime(time);
my $hostname = `hostname`;
##################
### DEFINITION ###
##################
my $Absender = 'WireGate <***@googlemail.com>'; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
my $username = '***@googlemail.com'; #Anpassen! Username fuer SMTP-Server
my $password = '***'; #Anpassen! Passwort fuer SMTP-Server
#my $mailserver= 'mail.gmx.net:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
my $mailserver='smtp.googlemail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
$plugin_info{$plugname.'_cycle'} = 3600;
my @actionGA;
push @actionGA, { name => "Puffer", email_adress => '***@googlemail.com', email_subject => "Puffer leer", email_text => "Puffer war um $hour:$min leer.", trigger_ga => "0/7/3", value => 1 };
#push @actionGA, { name => "test", email_adress => 'email@gmx.de', email_subject => "test2", email_text => "Test 2", trigger_ga => "1/1/1", value => 0 };
#push @actionGA, { name => "test", email_adress => 'email@gmx.de' ". $smtp->status();
#######################
### ENDE DEFINITION ###
#######################
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 $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" ) {
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";
}
}
Bei dem funktioniert es auch mit GMail -> GMail nicht. Eine Meldung unter Rückgabewert gibt es nicht.
@Netfritz: möglich ist alles (wir können auch zum Mars fliegen), einfach aber nicht.
Also keine Frage, das geht irgendwie, ich denke aber das es für diesen Fall einfachere Lösungen gibt!
-> Problem/Lösungsfrage beschreiben (neuer Thread)
@Eiko:
Das restarten des eibd ist eine andere Nummer, so falsch (ein Bug in der config des monit) - aber vergiss das bei deinem Problem bitte.
Sollte einfach sein, ich behaupte SMTP in jedem Bit auswendig zu kennen, ich brauch dazu nur auch alle Details, also komplettes Plugin etc.pp.
Weil sorry, bei mir gehts mit gmail und gmx 100% alle Minuten und das sagst du ja auch selber, also muss ich den Unterschied sehen..
Ich habe noch mal getestet. Das Plugin von Makki bei dem zyklisch gesendet wird, funktioniert mit zwei GMail-Adressen. Allerdings kommt es zu den angesprochenen Fehlermeldungen:
Code:
Jan 26 21:29:29 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:29:29 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
Jan 26 21:36:28 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:36:28 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
Jan 26 21:43:29 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:43:29 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
Jan 26 21:50:29 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:50:29 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
Jan 26 21:57:29 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:57:29 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
In diesem Fall habe ich den Plugin-Aufruf auf 300s gestellt. Wie man sieht kommt die Fehlermeldung jede 7. Minute. Die Emails kommen ebenfalls im sieben Minuten Intervall an.
Wenn ich jetzt das Plugin "Email-triggered-by-GA" verwende, passiert folgendes:
Jan 26 21:16:31 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:16:31 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
Jan 26 21:24:28 wiregate268 /usr/sbin/wiregated.pl: INFO - *** reading config
Jan 26 21:24:28 wiregate268 /usr/sbin/wiregated.pl: INFO - connected to eibd local:/tmp/eib
In dem Fall ist das Plugin jeweils ins Time-Out gelaufen und es wurde nichts gesendet. Auffällig ist auch hier wieder die Verzögerung von fast zwei Minuten.
Ich glaub ich versteh Dich nicht ganz. Wenn es nicht geht, kann ich keinen EMail-Header posten, denn dann gibt es ja keinen. Und bei der genannten WG-Fehlermeldung ändert sich nur die Zeit.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: