Forum

Einloggen | Registrieren | RSS  

e-mail senden vom raspberry unter python (Computertechnik)

verfasst von bastelix(R), 02.01.2017, 19:38 Uhr
(editiert von bastelix am 02.01.2017 um 19:41)

» 1. wenn ich die Zeile wie oben ändere in "smtp = smtplib.SMTP('bluewin.ch', 587)"
» bekomme ich zwar keine Fehlermeldung mehr aber auch kein Mail und das
» Programm schliesst nicht, muss es mit CTRL+C beenden.
Laut www müsste die Domain für den SMTP smtpauth.bluewin.ch sein.

» Fand übrigens nur Punkte, keine Kommata vor den Domain Namensnennungen (.ch)
In deinem Original-Post steht da ein Komma, kann sich aber auch anderweitig eingeschlichen haben.

» 2. Wenn ich im Python3 Terminal
» >>>class smtplib.SMTP(host='bluewin.ch', port 587, local_hostname=None,
» [timeout]local_address=None)
» eingebe, bekomme ich einen SyntaxError.
Ja, das ist auch die Methoden-Signatur aus der Dokumentation um zu Zeigen wie die Parameter sind. Im Terminal hab ich mit der Python-Syntax aber auch so meine Probleme... Ich häng mal ein Script an.

» 3. Aber vielleich noch ganz wichtig: In meinem e-mail Konto steht als
» Postausgangsserver nicht SPTP sondern SMTPAUTH
Ja, wenn man die richtige Domain verwendet steigt die Chance, dass der Server antwortet :-D

Ich hab mir jetzt mal den Beispiel-Code vom Buch geholt und mit deinem Code verglichen. Du hast da schon einige Änderungen vorgenommen und teilweise auch Fehler eingebaut die sogar mir als nicht-Python-Programmierer auffallen ;-)
Bei den mime['...'] zuweisungen muss in der eckigen Klammer der Mail-Header-Name stehen, also wirklich From, To, ... (Die Klasse verhält sich wie ein assoziatives Array, in Python nennt man das anscheinend Dictionary: http://www.python-kurs.eu/python3_dictionaries.php )

http://www.elektronik-kompendium.de/forum/upload/20170102193541.py
Edit: Der server lässt mich das Script zwar hochladen, aber nicht mehr runterladen:
#<<<<<<<<< BEGIN:sendmail.py >>>>>>>>>>>>
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header

# Absender-Adresse
frm = 'from@domain'
# Empfänger-Adresse
to = 'empfaenger@domain'

# SMTP-Zugangsdaten
smtpHost = 'smtpauth.bluewin.ch'
smtpPort = 587
smtpUser = 'username (=sender email)'
smtpPassword = 'passwort'

subj = 'from raspberry'
msg = 'Test'
mime = MIMEText(msg, 'plain', 'utf-8')
mime['From'] = frm
mime['To'] = to
mime['Subject'] = Header(subj, 'utf-8')

try:
smtp = smtplib.SMTP(smtpHost, smtpPort)
#smtp.starttls()
smtp.login(smtpUser, smtpPassword)
smtp.sendmail(frm, to, mime.as_string())
smtp.quit()
except:
print('Fehler', sys.exc_info())
#<<<<<<<<<<<<<<<<<<<<<< END: sendmail.py >>>>>>>>>>>>
Vorsicht mit den Einrückungen in Python, die verschluckt das Forum

Edit2: Das Script nochmal schön formatiert: https://gist.github.com/anonymous/44906d8b2ad24bbd242b5e3e4735722f

Das Script funktioniert (mit meiner E-Mail-Adresse) wie gewünscht. Ich hab die ganzen Zugansdaten in Variablen ausgelagert, für den ersten Testt musst du nur frm, to, smtpHost, smtpUser und smtPassword anpassen.

P.S. bist eigentlich mit dem PIR-Sensor weitergekommen?



Gesamter Thread:

e-mail senden vom raspberry unter python - luemar(R), 02.01.2017, 15:54
e-mail senden vom raspberry unter python - Gastl, 02.01.2017, 16:31
e-mail senden vom raspberry unter python - luemar(R), 02.01.2017, 17:29
e-mail senden vom raspberry unter python - bastelix(R), 02.01.2017, 17:28
e-mail senden vom raspberry unter python - luemar(R), 02.01.2017, 18:18
e-mail senden vom raspberry unter python - bastelix(R), 02.01.2017, 19:38
e-mail senden vom raspberry unter python - luemar(R), 03.01.2017, 11:09
e-mail senden vom raspberry unter python - bastelix(R), 03.01.2017, 21:55