首页 > 解决方案 > 从 R 和 Python 发送电子邮件:535 5.7.3 身份验证不成功

问题描述

我正在尝试通过我的办公室电子邮件发送电子邮件。去年夏天它工作了几个月,然后无缘无故停止了。我正在尝试使用 R 和 Python(只是为了仔细检查这不是特定于语言的问题),并且都使用简单的程序失败了。

我已经尝试过 R 和 Python 程序。

R代码是:

library(mailR)
sender <- "<my MSoffice email>"
recipients <- c("<my MSoffice email>")
send.mail(from = sender,
      to = recipients,
      subject = "Example",
      body = "Example",
      authenticate = TRUE,
      smtp = list(host.name = "smtp.office365.com", port = 587, 
                  user.name = "<my MSOffice email>",            
                  passwd = "<my MSOffice password>", tls=TRUE))

Python代码是:

import smtplib
mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.login('<my MSOffice email>, '<my MSOffice password>')
mailserver.sendmail('<my MSOffice email>','<my MSOffice email>','python email')
mailserver.quit()

两个程序都失败,并显示“535 5.7.3 Authentication unsuccessful”

标签: pythonremail

解决方案


对于 python 示例,在使用 时starttls,我认为您需要mailserver.ehlo()(再次)在mailserver.starttls().

import smtplib
mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()  #again
mailserver.login('<my MSOffice email>', '<my MSOffice password>')
mailserver.sendmail('<my MSOffice email>','<my MSOffice email>','python email')
mailserver.quit()

推荐阅读