python win32com outlook 2013 SendUsingAccount返回异常

2024-06-06 09:37:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用python和win32com api进行简单的邮件自动化时,我遇到了SendUsingAccount的问题。当我从Windows7升级到Windows10时,它被忽略了,或者更糟的是,它生成了一个错误。在

这是我的原始代码

import win32com.client

o = win32com.client.Dispatch("Outlook.Application")
oacctouse = None
for oacc in o.Session.Accounts:
    if oacc.SmtpAddress == "sender@mail.com":
        oacctouse = oacc
        break
Msg = o.CreateItem(0)
if oacctouse:
    Msg.SendUsingAccount = oacctouse
if to:
    Msg.To = ";".join(to)
if cc:
    Msg.CC = ";".join(cc)
if bcc:
    Msg.BCC = ";".join(bcc)

Msg.HTMLBody = ""

Msg.Send()

导致以下错误: 回溯(最近一次呼叫): 文件“C:\Program Files(x86)\JetBrains\PyCharm 5.0.3\helpers\pydev\pydev_执行副总裁“,第3行,在Exec中 在全局变量、本地变量中执行exp 文件“”,第1行,输入 文件“C:\Python27\lib\site packages\win32com\client\动态.py“,第560行,insetattr 自我。oleobj。调用(条目.dispid,0,调用类型,0,值) com错误:(-2147417851,'\x83T\x81[\x83o\x81[\x82\xc9\x82\xe6\x82\xc1\x82\xc4\x97\xe1\x8aO\x82\xaa\x95\xd4\x82\xb3\x82\xea\x82\xdc\x82\xb5\x82\xbd\x81B',无,无)

我的系统是日语的。在

我将在下面回答我的问题。在


Tags: 文件tocomclientif错误msgwin32com
2条回答

对于其他不走运的人,他们的二级帐户名出现在“For oacc in o”下面。会话.帐户:“循环:尝试使用Msg.SentOnBehalfOfName= '2ndaryemail@mail.com' . 这对我有用!在

所以,我在最底层的this thread上偶然找到了问题的解决方案(大部分都是针对VBA的,但上一篇文章解决了python问题)。在

这是工作代码

import win32com.client

o = win32com.client.Dispatch("Outlook.Application")
oacctouse = None
for oacc in o.Session.Accounts:
    if oacc.SmtpAddress == "sender@mail.com":
        oacctouse = oacc
        break
Msg = o.CreateItem(0)
if oacctouse:
    Msg._oleobj_.Invoke(*(64209, 0, 8, 0, oacctouse))  # Msg.SendUsingAccount = oacctouse

if to:
    Msg.To = ";".join(to)
if cc:
    Msg.CC = ";".join(cc)
if bcc:
    Msg.BCC = ";".join(bcc)

Msg.HTMLBody = ""

Msg.Send()

相关问题 更多 >