2017-12-30 10 views
0

Ich verwende die integrierte Python-Bibliothek, um E-Mails zu senden. Alles funktioniert, außer wenn ich eine Zeit in die Nachricht setze, die ich sende. wie 7:30 pm.Python SMTP-Bibliothek Blank E-Mail mit der Zeit

Wenn ich eine Zeit in die E-Mail-Nachricht eingeben, erhält der E-Mail-Empfänger nur eine leere E-Mail. Wenn ich die Zeit entferne, sendet die Email einwandfrei. Ich vermute, dass etwas mit der Zeit die E-Mail verschraubt. Was sollte ich in meinem Code ändern, damit ich eine Zeit in den E-Mail-Text schreiben kann. Vielen Dank!

from smtplib import SMTP 
def sendEmail(message,address): 
    debuglevel = 0 

    smtp = SMTP() 
    smtp.set_debuglevel(debuglevel) 
    #connect to the email server 
    smtp.connect('smtp.gmail.com', 587) 
    smtp.starttls() 
    smtp.login('[email protected]', 'ourpassword') 
    #set the email to be sent from 
    from_addr = "Auto Notification <sender email>" 
    #send the email from our address and the message and recepients provided in the function definition. 
    smtp.sendmail(from_addr, address, message) 
    smtp.quit() 

finalStr = "The Girls Varsity Basketball has been changed to 02/06/2018 at 7:30 pm * - (previously 6:15 pm ) at Clear Lake High School" 

sendEmail(finalStr, '[email protected]') 
+0

Haben Sie sich die rohe Quelle der E-Mail? Ist das auch leer? Ich kann mir keinen Grund vorstellen, warum die E-Mail nur wegen einer Zeit leer war. – Barmar

+0

Der einzige Unterschied ist, dass es eine Zeile niedriger ist, aber sonst sieht es gleich aus. @Barmar – LewisCallaway

+0

Es ist eine Zeile niedriger in der guten E-Mail oder der schlechten E-Mail? Es sollte eine Leerzeile zwischen dem Header und dem Nachrichtentext sein, fehlt das im leeren? – Barmar

Antwort

0

Einige der Zeichen werden während der Übertragung an den SMTP-Server als Steuerzeichen missinterpretiert. Versuchen Sie, die Zeichenfolge als MIMEText zu codieren:

Hier ist, wie das Ergebnis bei der Übertragung unterscheidet. Beachten Sie, dass die Codierung im Arbeitsbeispiel deklariert ist.

Vor

send: b'The Girls Varsity Basketball has been changed to 02/06/2018 at 7:30 pm * - (previously 6:15 pm ) at Clear Lake High School\r\n.\r\n' 

Nach:

send: b'Content-Type: text/plain; charset="us-ascii"\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: 7bit\r\n\r\nThe Girls Varsity Basketball has been changed to 02/06/2018 at 7:30 pm * - (previously 6:15 pm ) at Clear Lake High School\r\n.\r\n'