python - python win32.client 从其自己的发件箱文件夹中的辅助 Outlook 帐户发送电子邮件
问题描述
我的第二个 Outlook 帐户没有出现在通过遍历 outlook.application CDispatch Session.Accounts 给出的列表中。
所以,我改用“SentOnBehalfOfName”,正如https://stackoverflow.com/a/57324426/6057650所建议的那样发送电子邮件。它可以工作,但完全不像我预期的那样,因为发送的电子邮件存储在主帐户发件箱中,而不是存储在辅助帐户发件箱中。
import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
# see available mail accounts (no condition, just as info)
for accounts in outlook.Session.Accounts:
print('Available email accounts: %s'%(accounts))
# Create the email to be sent
mail = outlook.CreateItem(0)
mail.SendUsingAccount='secondary_account@email.com'
mail._oleobj_.Invoke(*(64209, 0, 8, 0, 'secondary_account@email.com'))
mail.SentOnBehalfOfName = 'secondary_account@email.com'
mail.To = 'some_address@email.com'
mail.Subject = 'Report'
mail.Body ='Some stuff'
# getting default folder of used Account
myNamespace = outlook.GetNamespace("MAPI")
myFolder = myNamespace.GetDefaultFolder(6)
myFolder.Display()
# see your prepared email
mail.Display()
# Finally
mail.Send()
我想要(并且需要)将发送的电子邮件存储在辅助帐户发件箱中(与其他同行共享并且可以由他们访问)而不是主要或主要帐户发件箱(只有我可以访问)。
解决方案
尝试以下
import win32com.client
Outlook = win32com.client.Dispatch("Outlook.Application")
for account in Outlook.Session.Accounts:
if account.DisplayName == "secondary_account@email.com":
print(account)
email = Outlook.CreateItem(0)
email._oleobj_.Invoke(*(64209, 0, 8, 0, account))
email.Display()
推荐阅读
- javascript - React + TypeScript 与 Github Pages 上的路由器部署问题
- html - 如何使用 Django 管理动态菜单?
- vim - vim 使用 Align 或 Tabularize (Verilog) 对齐列
- ios - 出现键盘时 ScrollView 不滚动如果 ContentView 中的元素
- css - 如何使用 bulma 将文本放入 HTML5 中的进度条?
- ios - 由于 CompileSwift 构建命令失败,Travis-CI 构建失败
- android - React Native 应用程序是多个 dex,具有超过 65536 种方法
- javascript - 数组不是javascript单元测试角度中的构造函数
- c# - asp.net 通过函数验证多视图中活动页面视图上的所有控件
- c# - React Native 中的 Instamojo 支付集成