求助:使用Python3.6向Outlook联系人发送每周邮件通知
解决方案:Python3.6 向企业Outlook发送每周邮件通知
针对你的问题,提供两个可行方案,均适配Python3.6环境:
方案一:通过smtplib对接企业Outlook SMTP服务
企业Outlook基于Exchange服务器,只需配置正确的SMTP参数即可使用smtplib发送邮件,无需局限于Gmail。
关键配置与代码示例
- 确认企业邮箱的SMTP地址(通常为
outlook.office365.com,内部部署的Exchange可能有专属地址)、端口(推荐587,启用TLS加密) - 部分企业要求使用域账号密码或应用专用密码,需联系IT确认权限
import smtplib from email.mime.text import MIMEText from email.header import Header # 邮箱配置 sender = "your-work-email@company.com" password = "your-domain-password-or-app-password" smtp_server = "outlook.office365.com" smtp_port = 587 # 构建邮件内容 msg = MIMEText("每周通知正文内容", "plain", "utf-8") msg["From"] = Header("通知推送", "utf-8") msg["To"] = Header("收件人", "utf-8") msg["Subject"] = Header("每周工作通知", "utf-8") # 发送邮件 try: with smtplib.SMTP(smtp_server, smtp_port) as server: server.starttls() # 启用TLS加密,必须步骤 server.login(sender, password) server.sendmail(sender, ["recipient@company.com"], msg.as_string()) print("邮件发送成功") except Exception as e: print(f"发送失败: {str(e)}")
方案二:使用exchangelib库对接Exchange服务
exchangelib是专门为Exchange设计的Python库,完美兼容Python3.6,无需依赖win32com,支持自动发现Exchange服务器。
步骤与代码示例
- 安装兼容版本的exchangelib:
pip install exchangelib==4.7.0
(注:4.7.0是最后一批支持Python3.6的版本,更高版本需Python3.7+)
- 代码实现:
from exchangelib import Credentials, Account, Message, Mailbox # 账号认证 creds = Credentials( username="your-work-email@company.com", password="your-domain-password" ) # 自动发现Exchange服务器,企业环境通常可用 account = Account( primary_smtp_address="your-work-email@company.com", credentials=creds, autodiscover=True, access_type="delegate" ) # 构建并发送邮件 email = Message( account=account, subject="每周工作通知", body="这是每周通知的正文内容", to_recipients=[Mailbox(email_address="recipient@company.com")] ) email.send() print("邮件发送成功")
补充说明
- 若
autodiscover=True失败,可手动指定Exchange服务器地址,例如:
account = Account( primary_smtp_address="your-work-email@company.com", credentials=creds, server="https://outlook.office365.com/EWS/Exchange.asmx", access_type="delegate" )
内容的提问来源于stack exchange,提问作者Shruthi Rajashekhar
相关产品推荐
相关产品推荐

