You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的smtplib从常规Outlook账户发送邮件

使用Python的smtplib发送Outlook邮件的完整解决方案

核心配置信息(Outlook/Office 365)

先明确Outlook官方SMTP服务器的关键参数,这是多数教程遗漏的核心:

  • SMTP服务器:smtp.office365.com
  • 端口:587(必须搭配TLS加密使用)
  • 认证规则:使用你的Outlook邮箱账号+密码登录;若账户开启两步验证,需用应用密码替代原密码

完整可运行代码示例

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 基础配置
sender = "your_outlook@outlook.com"
password = "your_password_or_app_code"  # 两步验证用户填应用密码
receiver = "target_email@example.com"

# 构建邮件内容
mail_content = MIMEText('这是测试邮件的正文内容', 'plain', 'utf-8')
mail_content['From'] = Header('自定义发件人名称', 'utf-8')
mail_content['To'] = Header('自定义收件人名称', 'utf-8')
mail_content['Subject'] = Header('测试邮件主题', 'utf-8')

try:
    # 连接服务器并发送
    smtp_server = smtplib.SMTP('smtp.office365.com', 587)
    smtp_server.starttls()  # 启用TLS加密,必须在login前执行
    smtp_server.login(sender, password)
    smtp_server.sendmail(sender, receiver, mail_content.as_string())
    print("邮件发送成功")
except Exception as e:
    print(f"发送失败: {str(e)}")
finally:
    smtp_server.quit()

常见问题排查

  • 认证失败:开启两步验证的用户,必须登录微软账户后台创建「应用密码」;未开启两步验证的用户,检查密码是否正确,同时确认账户未限制第三方应用登录权限。
  • 连接被拒绝/超时:排查本地防火墙或网络是否屏蔽了587端口;公司内网等受限环境可能禁止外部SMTP连接,需联系管理员放行。
  • 邮件被归为垃圾邮件:优化邮件主题和内容,避免敏感词汇;若使用自定义域名邮箱,可在域名后台配置DKIM/SPF规则提升邮件可信度。

其他邮件服务器适配示例(以QQ邮箱为例)

切换到其他服务商只需替换对应参数:

  • QQ邮箱:SMTP服务器smtp.qq.com,端口587,需先在邮箱设置中开启POP3/SMTP服务,使用生成的授权码登录

内容的提问来源于stack exchange,提问作者yoni halbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:50:18