2014-06-06 34 views
5

Tôi đang cố gắng gửi email qua máy chủ office365. Các email được phân phối đúng cách, tuy nhiên thông điệp không được gắnpython: smtp với TLS không gửi thông báo

Hỗ trợ được hầu hết đánh giá cao

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() 

Trả lời

4

Thông điệp của bạn không phải là một thông điệp email còn hiệu lực, trong đó bao gồm một tiêu đề và một cơ thể. Hãy thử một cái gì đó như thế này:

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

This is a test email 
""" 
1

xem xét xây dựng thông điệp theo cách tương tự như 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]' 

Ngoài ra, tôi không chắc chắn về việc sử dụng smtpserver.close(). Có vẻ như cách thích hợp là smtpserver.quit().

Các vấn đề liên quan