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

如何使用Python创建并发送Outlook邮件?

如何用Python创建并发送Outlook邮件

下面介绍两种常用的实现方式,根据你的场景选择即可:

方法一:借助本地Outlook客户端发送(Windows专属)

这种方式需要你本地已经安装了Outlook客户端,通过调用系统COM组件来操作。

  1. 先安装依赖库:
pip install pywin32
  1. 示例代码:
import win32com.client as win32

# 创建Outlook应用实例
outlook = win32.Dispatch('outlook.application')

# 创建新邮件
mail = outlook.CreateItem(0)

# 设置邮件基本信息
mail.To = '收件人邮箱@example.com'
mail.CC = '抄送人邮箱@example.com'  # 可选
mail.Subject = '这是Python发送的测试邮件'

# 设置邮件正文(支持HTML格式)
mail.HTMLBody = '''
<p>你好,</p>
<p>这是一封通过Python自动发送的Outlook邮件。</p>
<p>附件在下方,请查收。</p>
'''

# 添加附件(可选)
attachment_path = r'C:\路径\到\你的\文件.pdf'
mail.Attachments.Add(attachment_path)

# 发送邮件
mail.Send()

注意:运行前确保Outlook已经登录了你的账号,且没有弹出需要手动确认的安全提示。

方法二:通过Outlook SMTP服务器发送(跨平台)

如果不想依赖本地Outlook客户端,可以用SMTP协议直接连接Outlook的邮件服务器发送,这种方式Windows、Mac、Linux都能用。

  1. 先开启Outlook的SMTP权限:

    • 登录Outlook网页版,进入「设置」→「邮件」→「同步电子邮件」→ 开启POP和SMTP服务
    • 生成应用专用密码(如果你的账号开启了两步验证,必须用这个替代登录密码)
  2. 安装依赖库:

pip install smtplib email
  1. 示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# 配置信息
sender_email = '你的outlook邮箱@outlook.com'
sender_password = '你的应用专用密码或登录密码'
receiver_email = '收件人邮箱@example.com'
smtp_server = 'smtp.office365.com'
smtp_port = 587

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = 'Python SMTP发送的Outlook测试邮件'

# 添加正文
body = '这是通过SMTP协议发送的Outlook邮件正文内容'
msg.attach(MIMEText(body, 'plain'))

# 添加附件(可选)
attachment_path = r'C:\路径\到\文件.txt'
with open(attachment_path, 'rb') as attachment:
    part = MIMEBase('application', 'octet-stream')
    part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename= {attachment_path.split("\\")[-1]}')
msg.attach(part)

# 连接服务器并发送
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()  # 开启TLS加密
    server.login(sender_email, sender_password)
    text = msg.as_string()
    server.sendmail(sender_email, receiver_email, text)
    print("邮件发送成功")
except Exception as e:
    print(f"发送失败:{str(e)}")
finally:
    server.quit()

注意:如果用的是hotmail邮箱,SMTP服务器同样是smtp.office365.com,端口587;两步验证用户必须使用应用专用密码,否则会登录失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:36:15