win32com未发送附件
这是我第一次提问,希望没问题。
我正在尝试用Python通过win32com发送带附件的邮件,使用的是Outlook 2010。邮件可以发送,但附件却没有发送。我是根据这里的一个例子写的代码。
def email_tamplate(*args):
Format = { 'UNSPECIFIED' : 0, 'PLAIN' : 1, 'HTML' : 2, 'RTF' : 3}
profile = "Outlook"
#session = win32com.client.Dispatch("Mapi.Session")
outlook = win32com.client.Dispatch("Outlook.Application")
#session.Logon(profile)
mainMsg = outlook.CreateItem(0)
mainMsg.To = str(login_entry.get())+"@amazon.com"
mainMsg.Subject = "Sauron personal report request between "+str(start_date.get())+" and "+str(end_date.get())
mainMsg.BodyFormat = Format['RTF']
mainMsg.HTMLBody = body
try:
attachment1= ('C:\\Users\\' + str(login_entry.get()) + '\\My Documents\\status_email.csv')
mainMsg.Attachments.Add(attachment1)
except:
pass
mainMsg.Send()
这是我在没有使用Try/except时收到的错误信息:
在Tkinter回调中出现异常 回溯(最近的调用最后): 文件 "C:\Python33\lib\tkinter__init__.py",第1475行,在 call 返回 self.func(*args) 文件 "C:\Users\alvaros\Dev\Sauron\v2\Sauron v2.2.1.py",第478行,在 status_email email_tamplate() 文件 "C:\Users\alvaros\Dev\Sauron\v2\Sauron v2.2.1.py",第424行,在 email_tamplate mainMsg.Attachments.Add(attachment1) 文件 ">",第3行,在 Add pywintypes.com_error: (-2147352567, '发生异常。', (4096, 'Microsoft Outlook', "您没有执行此操作的适当权限。", None, 0, -2147024891), None)
除了附件没有发送,其他都正常。附件的路径是正确的,文件也在那儿。
谢谢。
2 个回答
这个问题已经解决了。 谢谢你的帮助。 可能是缩进的问题,因为它基本上是自己解决的。
你可能需要以管理员身份运行这个程序,如果这样还不行的话,你可能需要使用“扩展MAPI”来让它正常工作:
另一方面,这个讨论提到了编辑PST文件本身的属性,或者在Windows注册表中编辑它的属性: