Das Smtplib Modul

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
TrayserCassa
User
Beiträge: 97
Registriert: Donnerstag 2. Mai 2013, 19:11

Nabend :)

Ich hab mal wieder ein kleines Problemchen :oops:
Wobei ich mir nicht ganz sicher bin ob es an mir liegt :D

Ich versuche mir eine Liste zu schicken via e-mail. Wenn ich nur Text eingebe funktioniert es. Allerdings wenn ich mit einer ip arbeite "192.168.0.2" funktioniert das ganze nicht ...

Beispiel:

Code: Alles auswählen

import smtplib


def send_email(msg_list):	# Zum Senden der E-mail (Voreinstellung ist auf Google-mail bezogen).
	sender = "mail@gmail.com"
	empfaenger = "mail@googlemail.com"
	server = smtplib.SMTP('smtp.gmail.com:587')
	server.ehlo()
	server.starttls()
	server.login("mail@gmail.com", "passwd")
	server.sendmail(sender, empfaenger, msg_list)
	server.quit()


def main():
	msg = ['FTP Server is Down.', 'Internet ip = 187.82.139.110', 'LAN ip = KeyError, Kein eth0 verfügbar!', 'W-lan ip = 192.168.2.111']
	msg2 = "\n".join(msg)
	send_email(msg2)

if __name__ == '__main__':
	main()

Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Python34\test.py", line 44, in <module>
    main()
  File "C:\Python34\test.py", line 41, in main
    send_email(msg2)
  File "C:\Python34\test.py", line 34, in send_email
    server.sendmail(sender, empfaenger, msg_list)
  File "C:\Python34\lib\smtplib.py", line 764, in sendmail
    msg = _fix_eols(msg).encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode character '\xfc' in position 84: ordinal not in range(128)
Was habe ich hier verkehrt bzw. was muss ich tun, dass mir die Liste per e-mail geschickt wird? Bin für jede Antwort Dankbar :)

MfG
Trayser
BlackJack

@TrayserCassa: Das hat weder etwas mit einer IP noch mit der Liste zu tun, sondern dass man nur Bytes verschicken kann und da dann eigentlich auch nur Bytewerte im ASCII-Bereich. Da fällt Dein Unicode-ü nicht drunter. Wenn da etwas anderes als reiner ASCII-Text verschickt werden soll, dann müsstest Du schon eine Nachricht nach RFC822 (bzw. dem aktuellen Nachfolger davon) erstellen. Da gibt's in der Standardbibliothek das `email`-Package für.
TrayserCassa
User
Beiträge: 97
Registriert: Donnerstag 2. Mai 2013, 19:11

Achso ok :D

Vielen dank für die schnelle hilfe :)

mfg
Trayser
Antworten