gpt4 book ai didi

python - 如何使用 tls/ssl 使用 python 为 office365 发送 SMTP 电子邮件

转载 作者:太空狗 更新时间:2023-10-29 19:33:32 25 4
gpt4 key购买 nike

我正在尝试使用 python 从我的 office365 公司帐户发送电子邮件。我是 python 的新手。此代码以前在使用我的 hotmail 帐户时有效,但现在我需要发送 secret 信息,我必须使用我的公司电子邮件。

我已经尝试了一些东西。

  • 已验证我的用户名和密码是否正确。
  • 同时使用了 python2 和 python3。两者都给出相同的错误:535 5.7.3 身份验证不成功
  • 我以前在使用 ma​​ilserver.starttls() 时得到上面的错误,然后经过一些研究,我试图通过一个
    证书。ma​​ilserver.starttls(certfile='office365.cer')

我不清楚证书部分,但我的步骤包括,在线查找如何导出证书。使用 chrome 浏览器,microsoftonline.com有链证书。我可以导出根和根下面的级别,但不能导出最后一个级别。我不知道如何传递这两个文件,所以我只是传递了根证书。此时我收到错误:ssl.SSLError: [SSL] PEM lib (_ssl.c:3309)

这时候我卡住了。任何帮助表示赞赏。下面使用的代码

import smtplib

mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls(certfile='office365.cer')
mailserver.ehlo()
mailserver.login('user@company.co', 'password')
mailserver.sendmail('user@company.co','user@company.co','python email')
mailserver.quit()

最佳答案

好吧,你快到了。以下代码可以解决问题:

import smtplib

mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.login('user@company.co', 'password')
#Adding a newline before the body text fixes the missing message body
mailserver.sendmail('user@company.co','user@company.co','\npython email')
mailserver.quit()

使用以下链接获取更多信息:

http://www.aventistech.com/2016/03/07/python-send-email-via-office-365-tls/

https://docs.python.org/3/library/smtplib.html

https://gist.github.com/jasonjoh/3ec367594c3fa662ee983a617bdc7deb

关于python - 如何使用 tls/ssl 使用 python 为 office365 发送 SMTP 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46160886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com