2016-04-12 9 views
0

Ich arbeite mit einer Liste, die aus Servern (Name, IP) Tupel besteht. Ich prüfe jeden Server für Verbindung mit Ping. Wenn der Ping fehlschlägt, wird er zu einer Liste mit dem Namen issues hinzugefügt. Ich versuche, diese Liste der Fehler an mich zu mailen, vorausgesetzt, es gibt welche. Ich bin nicht sicher, was ich falsch gemacht, aber ich die folgende Fehlermeldung erhalten:E-Mail-Liste der Tupel als Körper - Python

Traceback (most recent call last): 
    File "C:/Python27/Scripts/serverconnection.py", line 26, in <module> 
    msg['SUBJECT'] = "Server Disconnect Notice" 
TypeError: 'str' object does not support item assignment 

Der Code, der den Fehler zu erzeugen unter

if len(issues) > 0 : 
    body = '\n'.join('%s, %s' % server for server in issues) 
    msg = body 
    msg['SUBJECT'] = "Server Disconnect Notice" 
    msg['FROM'] = "Alli Deacon" 
    msg['TO'] = '[email protected]' 
    msg.attach(text) 

Antwort

0

Da msg ist ein str, so können Sie dies nicht tun msg['SUBJECT'] wie in dict

Versuchen Sie folgendes:

+0

Vielen Dank für Ihre Hilfe, Sie haben mir geholfen zu erkennen, was ich vermisst habe. Ich musste die MIMEText-Funktionalität nutzen. – AlliDeacon

0

Ich brauchte den folgenden Import:

from email.MIMEText import MIMEText

Und dann meinen Code mit dem folgende Update:

msg = MIMEText(body)

Nachdem ich mit diesen Ergänzungen aktualisiert, der Code hat gut funktioniert.