发送emal stmp office 365:消息为空

时间:2016-12-20 10:07:40

标签: python smtp office365

我试图用Python发送电子邮件

使用此代码使用gmail时没有问题:

import smtplib

sender = 'xxx@xxx'
receivers = ['xxx@gmail.com']
message = "hello"

try:
  smtpObj = smtplib.SMTP('smtp.gmail.com:587')
  smtpObj.starttls()
  smtpObj.login('xxxx@gmail.com', 'my_password')
  smtpObj.sendmail(sender, receivers, message)
  smtpObj.quit()
  print("okay")

except:
  print("notokay")

但是当我在Office 365中使用它时,电子邮件会被发送,但邮件是空的。

它是相同的代码,但使用' smtp.office365.com:587'用我正确的登录名和密码。

1 个答案:

答案 0 :(得分:0)

import smtplib
from email.mime.text import MIMEText

msg = MIMEText('hello')

msg['Subject'] = 'Urgent message'
msg['From'] = 'xxx@xxx'
msg['To'] = 'xxx@gmail.com'

s = smtplib.SMTP('smtp.gmail.com:587')
s.starttls()
s.login('xxx@gmail.com', 'my_password')
s.sendmail('xxx@xxx', 'xxx@gmail.com', msg.as_string())
s.quit()

尝试以下操作,可能是因为您需要创建一个MIMEText上下文,以便Office365接受格式化。