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

如何用Python的win32com.client从非默认Outlook邮箱发邮件

指定Outlook发件人发送邮件(Python + win32com.client)

要从Outlook的指定账户发送邮件,核心是找到目标账户并给邮件对象的SendUsingAccount属性赋值。以下是修改后的可运行代码:

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application")
mapi_namespace = outlook.GetNamespace("MAPI")

# 替换为你要用来发件的邮箱地址
target_sender = "your_secondary_email@domain.com"
sender_account = None

# 遍历Outlook已配置的账户,匹配目标发件邮箱
for account in mapi_namespace.Accounts:
    if account.SmtpAddress == target_sender:
        sender_account = account
        break

if sender_account:
    mail = outlook.CreateItem(0)
    # 关键:指定发件账户
    mail.SendUsingAccount = sender_account
    mail.To = "recipient@domain.com"
    mail.CC = "cc_recipient@domain.com"
    mail.Subject = "指定发件人测试"
    mail.Body = "此邮件通过指定Outlook账户发送"
    mail.Send()
else:
    print(f"未找到配置的邮箱:{target_sender}")

说明

  • 目标发件邮箱必须是已经在Outlook中完成配置的账户,否则无法匹配到对应的Account对象
  • 通过SmtpAddress匹配账户是最可靠的方式,避免因账户名称重复导致的错误
  • 若需要添加附件,可继续使用mail.Attachments.Add(附件路径)方法

内容的提问来源于stack exchange,提问作者Hélèna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:50:35