2014-06-06 11 views
5

Próbuję wysłać wiadomość e-mail przez serwer office365. Wiadomość e-mail jest prawidłowo dostarczone, jednak wiadomość nie jest dołączonypython: smtp z TLS nie dostarcza wiadomości

Assistance jest najbardziej ceniona

import smtplib 

to = "[email protected]" 
office365_user = '[email protected]' 
office365_pwd = 'password' 

smtpserver = smtplib.SMTP("smtp.office365.com",587) 
smtpserver.ehlo() 
smtpserver.starttls() 
smtpserver.ehlo() 
smtpserver.login(office365_user,office365_pwd) 
msg = "This is a test email \n" 
smtpserver.sendmail(office365_user, to, msg) 
smtpserver.close() 

Odpowiedz

4

Twoja wiadomość nie jest ważny mail, który składa się z nagłówka i ciała. Wypróbuj coś takiego:

msg = """From: <[email protected]> 
To: <[email protected]> 
Subject: foo 

This is a test email 
""" 
1

Rozważ skonstruowanie wiadomości w taki sam sposób jak Python documentation.

from email.mime.text import MIMEText 

msg = MIMEText("This is a test email") 
msg['Subject'] = 'Email Subject' 
msg['From'] = '[email protected]' 
msg['To'] = '[email protected]' 

Ponadto, nie jestem pewien co do korzystania z smtpserver.close(). Wydaje się, że właściwą drogą jest smtpserver.quit().