Python用IMAP库读取Outlook企业邮箱LOGIN失败求助
公司Outlook邮箱IMAP登录失败问题
我用Python脚本通过IMAP协议读取Outlook邮箱时遇到LOGIN failed错误,脚本能正常读取个人邮箱,但无法读取公司邮箱。已确认未开启双因素认证,邮箱地址和密码正确,且SMTP协议可正常登录发送邮件。
Mail_read.py
import imaplib import email import ssl from getpass import getpass import html2text imap_server="outlook.office365.com" email_addrss="name@companyname.com" password = getpass() # Login to Outlook email imap = imaplib.IMAP4_SSL(imap_server,port=993) imap.login(email_addrss,password) imap.close()
错误信息
imap.login(email_addrss,password) File "/usr/lib/python3.10/imaplib.py", line 612, in login raise self.error(dat[-1]) imaplib.IMAP4.error: b'LOGIN failed.'
sent_mail_smtp.py (正常运行)
import smtplib mailserver = smtplib.SMTP('smtp.office365.com',587) mailserver.ehlo() mailserver.starttls() mailserver.login('name@companyname.com', 'Password') mailserver.sendmail("dname@companyname.com","receiver email","email body") mailserver.quit()
解决建议
- 确认企业IMAP权限:多数企业会单独管控IMAP协议权限,即使SMTP可用,IMAP可能被IT部门禁用,联系管理员确认是否开启IMAP服务。
- 尝试应用专用密码:部分企业域邮箱要求使用应用密码而非登录密码,即使未开启双因素认证,可尝试生成应用密码后登录。
- 调整IMAP连接方式:改用
STARTTLS连接而非直接SSL,代码修改如下:imap = imaplib.IMAP4(imap_server, port=143) imap.starttls() imap.login(email_addrss, password) - 核对登录账号格式:公司邮箱可能需要使用完整用户主体名称(UPN)或域账户格式(如
domain\username),而非单纯邮箱地址,确认账号格式正确性。 - 网页端启用IMAP:登录Outlook网页版,进入「设置→邮件→同步电子邮件」,手动确认IMAP协议是否已启用。
内容的提问来源于stack exchange,提问作者Ravi Nandasana
相关产品推荐
相关产品推荐

