Email mit sendEmail senden (Problem)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Folgendes Tutorial habe ich befolgt, sendEmail installiert und konfiguriert.
    http://www.linux-tips-and-tricks.de/de/raspibackup/

    hiermit rufe ich mein Script auf:

    Code
    /media/doBackup.sh

    In doBackup.sh ist das hier:

    Code
    /usr/local/bin/raspiBackup.sh -p /media/hdd1/__R aspBerry_Pi_2_B ackup/ -t tar -k 4

    Das funktioniert alles wunderbar!

    Aber wenn ich

    Code
    -e xyz@hotmail.de


    dran hänge, wird keine E-Mail verschickt.
    (Auch mit -s sendEmail-Parameter passiert nichts)

    Aber wenn ich nur diesen Befehl abschicke, wird eine Mail verschickt:

    Code
    sendEmail -f xyz@hotmail.de -t xyz@hotmail.de -u "Backup" -m "Device xxx has sucessfully created a backup" -s smtp-mail.outlook.com:587 -xu xyz@hotmail.de -xp password

    Was läuft hier falsch?

  • Öffnet das Script raspiBackup.sh und suche nach: function sendEMail() {
    Scroll dann etwas runter bis zum case
    Da siehst du wie sendEmail aufgerufen wird... Spiel damit solange rum bis es funktioniert :fies:

    Ansonsten wärs gut wenn sich der Macher @ framp dazu äußert

  • Code
    sendEmail) echo "$content" | "$EMAIL_PROGRAM" $EMAIL_PARMS -u "$subject" $attach -t "$EMAIL"

    Ich weiß zwar wie man PHP, JS, C, Cpp, Java und Delphi programmiert, aber shell sieht da doch etwas kryptisch aus :P

    Ich würde mal behaupten

    Code
    sendEmail

    dann alle Parameter wie

    Code
    -f xyz@hotmail.de -s smtp-mail.outlook.com:587 -xu xyz@hotmail.de -xp password

    ? :D


    Nur.. wie verbinde ich das mit meinem Aufruf

    Code
    /usr/local/bin/raspiBackup.sh -p /media/hdd1/__R aspBerry_Pi_2_B ackup/ -t tar -k 4

    ?

  • bash, nicht shell... Es ist nur Zufall das deine SHELL eine bash-Shell ist, könnte aber auch dash oder ksh sein :D

    Lass dir erst mal ausgeben was die ganzen Variablen beinhalten. $content wird vermutlich die Nachricht sein, was in $EMAIL_PARMS usw steht weiß ich nicht

    echo $content | ..bla

    ist eine Pipe. Die Ausgabe wird an den nachfolgenden Befehl übergeben.
    Wieso framp das so macht weiß ich nicht - würde ich anders machen aber nun ja ;)

    Probiers halt mal aus so wie du denkst - was kann schon groß schief gehen :s

  • Ich bin eigentlich auch so einer der erst testet bis zur Vergasung und dann nach Hilfe fragt.
    Deswegen frage ich ja. Denn ich teste schon seit gestern und bekomme es nicht hin :P

    Habe während meiner echt wenig Bash und Shell gemacht.

    ---

    In content steht nur drin, wann das Backup startet und wann es fertig ist.
    Im Prinzip also das, was auch in der Konsole steht.

  • Wie ich auch schon bei Deinem Comment auf meiner Webseite geschrieben habe - es ist beim Parameter -E wie folgt dokumentiert:

    Code
    -E 	Optionale weitere Parameter die im eMailProgrammaufruf mitgegeben werden. Für sendEmail muss er z.B. wie folgt aussehen: "-f absender.mail@absenderdomain -s smtp-server:587 -xu Username -xp Password"

    Das muss dann mit

    Code
    -E "-f xyz@hotmail.de -s smtp-mail.outlook.com:587 -xu xyz@hotmail.de -xp password"

    bei Dir funktionieren.

    Falls nicht, lass das Script im Debugmodus mit -l 1 (kleines L) laufen und schick mir das Logfile zu.

  • Genau es waren die "Tüdelchen".

    Ich dachte die Tüdelchen in der Beschreibung wären zur besseren Lesbarkeit. Aus (dummen) Fehlern lernt man!

  • Du bist schon der Zweite der über diese fehlenden Tüdelchen stoplert. Ich werde das Script ändern dass sowas als falsche Eingabe erkannt und berichtet wird. Ausserdem werde ich die Doku da noch mal nachbessern.


  • ... ich nutze ein Passwort mit -!- am Anfang und -"- am Ende. Das funzt hier so nicht ... (z.B. - !Passwort" -)

    Versuch mal mit:

    Code
    -xp '!Passwort"'

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Code
    sudo /usr/local/bin/raspiBackup.sh -l 1 -F -E "-f testxyz123@gmail.com -s smtp.gmail.com -xu testxyz -xp '!Xyz123"'"

    Fehler:

    Code
    -bash: !Xyz123": event not found

    1. Passwort wird nicht korrekt erkannt
    2. keine Ahnung ob "sendemail" funktioniert

  • Code
    -bash: !Xyz123": event not found

    Versuch mal ohne das shell-Script, d. h. nur mit sendemail und dort, das Passwort so -xp '!Xyz123"' , verwenden.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Code
    sudo /usr/local/bin/raspiBackup.sh -F -E '-f absender-email -t empfänger-email -s smtp-server -xu user -xp passwort'

    ... fuktioniert leider nicht.

    das hier schon:

    Code
    sendemail -f absender-email -t empfänger-email -s smtp-server -xu user -xp passwort


    Im logfile steht:

    Code
    DBG -- MAIL_PROGRAM=mail

    also nichts von 'sendemail'. Liegt hier das Problem ?

    Einmal editiert, zuletzt von Frank86 (1. Mai 2016 um 13:49)

  • Wenn Du das Script mit -l 1 (kleines L) aufrufst wird ein Log erstellt und in dem findest Du eine Zeile die wie folgt anfängt:

    Code
    Sending eMail with program $EMAIL_PROGRAM and parms '$EMAIL_PARMS'


    wobei $EMAIL_PROGRAM und $EMAIL_PARMS aktuelle Werte haben. Sieh mal nach wie da '$EMAIL_PARMS' aussieht. Direkt danach findest Du noch einen Logeintrag der den genauen Befehl zeigt, der benutzt wird um die eMail zu senden. Sieh mal nach wie der aussieht.

    Ich vermute mal da muss irgendwo ein \ vor das Ausrufezeichen.


  • Wenn Du das Script mit -l 1 (kleines L) aufrufst wird ein Log erstellt und in dem findest Du eine Zeile die wie folgt anfängt:

    Code
    Sending eMail with program $EMAIL_PROGRAM and parms '$EMAIL_PARMS'


    wobei $EMAIL_PROGRAM und $EMAIL_PARMS aktuelle Werte haben. Sieh mal nach wie da '$EMAIL_PARMS' aussieht. Direkt danach findest Du noch einen Logeintrag der den genauen Befehl zeigt, der benutzt wird um die eMail zu senden. Sieh mal nach wie der aussieht.

    Ich vermute mal da muss irgendwo ein \ vor das Ausrufezeichen.

    Edit: Ich denke es müßte so gehen:

    Code
    '-f absender-email -t empfänger-email -s smtp-server -xu user -xp \!eins\"'
  • Hallo,

    ich komme nochmal auf das Thema mit "sendemail" zurück wie bereits geschrieben:

    Code
    sudo /usr/local/bin/raspiBackup.sh -F -E '-f absender-email -t empfänger-email -s smtp-server -xu user -xp passwort'

    ... fuktioniert leider nicht.

    das hier aber schon:

    Code
    sendemail -f absender-email -t empfänger-email -s smtp-server -xu user -xp passwort


    Im logfile steht:

    Code
    DBG -- MAIL_PROGRAM=mail

    also nichts von 'sendemail'. Liegt hier das Problem ?


    Das Problem mit den Sonderzeichen im Passwort ist vorerst geändert, habe sie rausgenommen.


    Es geht um die Frage: Warum "sendemail" für sich funktioniert, mit "raspiBackup" aber nicht :s


    EDIT:

    Code
    20160516-171147: DBG -- EMAIL_PARMS=-f absender-email -t empfänger-email -s smtp-server -xu user -xp passwd
    20160516-171147: DBG -- DIR_TO_BACKUP=/
    20160516-171147: DBG -- LOG_LEVEL=1
    20160516-171147: DBG -- MSG_LEVEL=0
    20160516-171147: DBG -- MAIL_PROGRAM=mail

    Einmal editiert, zuletzt von Frank86 (16. Mai 2016 um 17:23)

  • Es geht um die Frage: Warum "sendemail" für sich funktioniert, mit "raspiBackup" aber nicht :s


    Verstehe ich Dich richtig dass Du jetzt mit raspiBackup eMails senden kannst weil Du die Sonderzeichen rausgenommen hast und willst wissen warum raspiBackup mit Sonderzeichen Probleme hat? Das liegt daran, dass bestimmte Sonderzeichen wie $ oder ! in der bash spezielle Funktionen haben und man im Code verflixed aufpassen muss wenn man diese Zeichen im bash Script als Parameter durch die Gegend reicht. Ich kann mir das genauer ansehen und fixen. Dann sollest Du Dich aber als Tester zur Verfügung stellen :shy:

  • Hi, auch gerade hier ;)

    Nochmal:

    Zitat

    Es geht um die Frage: Warum "sendemail" für sich funktioniert, mit "raspiBackup" aber nicht

    Das Problem mit den Sonderzeichen im Passwort ist vorerst geändert, habe sie rausgenommen.

    habe oben noch EDIT eingetragen wg "-l 1"

    Einmal editiert, zuletzt von Frank86 (16. Mai 2016 um 17:27)

  • Da das Thema leider immer noch nicht abgeschlossen ist, nochmal die Frage an alle, die mit RaspiBackup arbeiten:

    1. sendemail funktioniert auf der Komandozeilenebene
    2. sendemail funktioniert NICHT über angehangenen Parameter an RaspiBackup
    3. Ich habe KEIN Problem mit Sonderzeichen im Passwort, da ich für weitere Tests die Sonderzeichen zunächst weglasse
    4. Ich habe bereits ein Log von RaspiBackup gepostet, Email mit sendEmail senden (Problem)
    5. Im Log-File steht:

    Code
    # mailprogram
    
    
    DEFAULT_MAIL_PROGRAM="mail"

    Muss hier möglicherweise das Mailprogramm auf "sendemail" umgestellt werden ? Wo wird das parametriert ?

    EDIT:
    habe "sendemail" in "/usr/local/etc/raspiBackup.conf" als DEFAULT eingetragen, funktioniert auch nicht :(

    Einmal editiert, zuletzt von Frank86 (5. Juni 2016 um 11:28)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!