首页 > 解决方案 > 在带有 win32com 的 Microsoft Outlook COM 中使用相对路径

问题描述

win32com.client我创建了一个函数来使用Ppython 脚本发送我的输出的电子邮件。

app = win32com.client.Dispatch('Outlook.Application')
mail = app.CreateItem(0)
mail.Subject = 'Output file'
mail.Body = 'Output file'
mail.To = 'foo@bar.com'
attachment = 'E:\\python\\outputfile.xlsx'
mail.Attachments.Add(attachment)
mail.Send()

它工作得很好,但我有一个小问题。只有当我给出整个路径时,它才会找到附件。例如,

attachment='outputfile.xlsx'

或者

attachment="\\outputfile.xlsx"

导致错误

' 4096, 'Microsoft Outlook', '文件名或目录名无效。'

我想让代码可移植,以便它可以从自己的目录中找到文件。

标签: pythonemailoutlookwin32com

解决方案


最简单的方法是import os使用os.path.abspath('outputfile.xlsx').


推荐阅读