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

如何通过Outlook批量发送文件夹中Excel文件?脚本报错求助

报错原因分析
  • 通配符路径不被识别:直接使用*.xlsx作为附件路径,Outlook无法解析通配符,必须传入具体的单个文件路径。
  • 循环逻辑错误:attachment是字符串类型,for f in attachment会遍历字符串的每个字符而非文件列表,导致每次添加的都是无效的通配符路径。
  • 占位符未替换:路径中的Username是占位符,需要替换为你的实际系统用户名。
修复后的代码
import glob
import win32com.client

Email_A = row['ICO Mail A']
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = Email_A
mail.Subject = 'Message subject'
mail.Body = 'Message body'
mail.HTMLBody = '<h2>HTML Message body</h2>' # 可选字段

# 获取文件夹下所有xlsx文件的真实路径
attachment_dir = r"C:\Users\你的真实用户名\Desktop\Work\Automation\SAP_output_scen1"
xlsx_files = glob.glob(f"{attachment_dir}/*.xlsx")

# 逐个添加附件
for f in xlsx_files:
    mail.Attachments.Add(f)

mail.Send()
额外注意事项
  • 确保Outlook已打开并登录对应邮箱账号,避免权限或登录状态问题。
  • 如果目标文件夹下无xlsx文件,xlsx_files会是空列表,不会添加任何附件,可根据需求添加空值判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:07:48