Befehl in Python File ausführen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen

    Ich bin ein Neuling auf dem Raspberry Gebiet und habe eine kleine Frage.

    Wie kann ich in einem File z.B. test_mail.py den Befehl
    echo "Hello inbox" | mail -s "Test Betreff" test@gmail.ch
    ausführen??

    Das kann ich nicht einfach so dort eingeben oder?
    Danke für eure Hilfe

    • Offizieller Beitrag

    Du brauchst davon eigentlich nur

    Code
    text1 = subprocess.Popen(['mpc', 'current', '-f', '%artist%'], stdout=subprocess.PIPE)


    Wobei das in den [] Klammern, der Shell Befehl ist den du absenden willst, jedes argument einzeln getrennt. Mach das nicht. Das ist nicht der PYthon weg. Für python gibt es ein Super GMAIL Sende Modul. Hier. Wenn du willst kann ich dir auch ein kurzes Beispiel zusammen bauen.

  • Super danke für die tipps. Ja ich wäre sehr froh um ein Beispiel, wenns für dich nicht zu viel Aufwand gibt.

    Also ich habe bereits ssmtp und mailutils installiert und im ssmpt.conf file meine mail Daten eingetragen..

    mailhub=smtp.gmail.com:587

    Und folgende zeilen einfügen:
    AuthUser=muster@gmail.com
    AuthPass=password
    UseSTARTTLS=YES
    UseTLS=YES

    Das kann dann immer noch verwendet werden oder?

    • Offizieller Beitrag

    Hab grade mal probiert und ein seltsames Phänomen:
    Auf ner Linux-Kiste (egal ob raspian, debian, ubuntu) in verschiedenen Netzen funktioniert folgendes NICHT

    Code
    python
    import smtplib
    server = smtplib.SMTP('smtp.gmail.com', 587)
    #und aber hier hängt bis er irgendwann timeoutet

    Das gleiche bei

    Code
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)

    Das gleiche funktioniert auf ner Windowskiste tadellos :denker:. Kann das einer bestätigen

    • Offizieller Beitrag

    :wallbash::wallbash::wallbash::wallbash::wallbash:
    Manchmal hab ichs schon nicht leicht mit mir :lol:

    Wenn ich der Firewall natürlich sage, das für alle Geräte (ausser AdminComputer) die unötigen ports sperrt sind, brauch ich mich nicht wundern.
    Pi in die Admingruppe genommen, geht

    Edit: so nun zum eigentlichen Code
    Modul von github laden

    Code
    sudo apt-get install git
    git clone https://github.com/paulchakravarti/gmail-sender.git
    cd gmail-sender
    sudo python setup.py install

    Und nun versenden wir Mails
    [code=php]
    from gmail import GMail, Message
    server = GMail("user@googlemail.com","password")
    msg = Message("Test Message",to="empfaenger@irgendwo.com",text="Hello")
    server.send(msg)
    [/php]

    Damit das auch klappt muss man seinem Googleaccount sagen, das das erlaubt ist.Hier.

  • Der Vollständigkeitshalber:


    sendemail.py
    [code=php]
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #
    # v0.1 by meigrafd 02.2015
    #
    import smtplib

    mailServer = 'pop.gmail.com'
    mailPort = 587
    mailLogin = 'xxx@gmail.com'
    mailPass = 'xyz'
    mailSendFrom = mailLogin
    mailSendTo = 'target@email.com'
    mailTLS = True
    mailDebug = False

    def sendemail(from_addr, to_addr, subject, message):
    try:
    header = 'From: %s\n' % from_addr
    header+= 'To: %s\n' % to_addr
    header+= 'Subject: %s\n\n' % subject
    message = header + message
    conn = smtplib.SMTP(mailServer, mailPort)
    if mailDebug:
    conn.set_debuglevel(True) #show communication with the server
    if mailTLS:
    conn.starttls()
    conn.login(mailLogin, mailPass)
    error = conn.sendmail(from_addr, to_addr, message)
    if not error:
    print "Successfully sent email"
    except Exception, e:
    print "\nSMTP Error: " + str(e)
    finally:
    if conn:
    conn.quit()

    if __name__ == '__main__':
    sendemail(mailSendFrom, mailSendTo, 'Bla!', 'Hallo!\nGruesse vom PI')
    [/php]

  • Das Problem hat sich erledigt!! Habe Irgendwo die Einstellungen ändern müssen, jetzt klappts. Hatte folgendes Problem:

    Ich habe versucht eine mail zu versenden mit dem Raspberry an einem neuen Ort.
    Es hat vorher immer funktioniert, jetzt kommt aber dieser Error:

    pi@raspberrypi ~ $ sudo python test_mail1.py

    [i]Traceback (most recent call last):
    File "test_mail1.py", line 19, in <module>
    smtpserver.login(gmail_user, gmail_pwd)
    File "/usr/lib/python2.7/smtplib.py", line 613, in login
    raise SMTPAuthenticationError(code, resp)
    smtplib.SMTPAuthenticationError: (534, '5.7.14 <https://accounts.g..............

    Alles ok, freundliche Grüsse Ruben

    Einmal editiert, zuletzt von Ruben89 (22. März 2015 um 13:10)

Jetzt mitmachen!

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