我开发了一个 Python 应用程序来自动发送电子邮件和满足内部办公室事件的请求。为了将这些与我的常规通信分开,我们设置了一个备用电子邮件地址,我可以用它来发送官方公告。我修改了我的应用程序,通过使用备用发件人的 SentOnBehalfOfName
来处理电子邮件 - 但是,我无法为 session 请求复制它。我基于一系列网络搜索的尝试如下。但是,当运行它时,我得到了错误:
Traceback (most recent call last):
File "mailer_test.py", line 49, in <module> test_sender)
File "mailer_test.py", line 38, in send_meeting_request
mtg.Send()
File "<COMObject CreateItem>", line 2, in Send
pywintypes.com_error: (-2147024809, 'The parameter is incorrect.', None, None)
当我添加替代发件人的选项时会发生这种情况 - 删除此选项会导致邮件从我的帐户成功发送。重现错误的测试代码如下 - 我已经删除了我的实际电子邮件地址,但其他一切都是一样的。
import win32com.client
OUTLOOK_APPOINTMENT_ITEM = 1
OUTLOOK_MEETING = 1
OUTLOOK_ORGANIZER = 0
OUTLOOK_OPTIONAL_ATTENDEE = 2
ONE_HOUR = 60
THIRTY_MINUTES = 30
OUTLOOK_FORMAT = '%m/%d/%Y %H:%M'
outlook_date = lambda dt: dt.strftime(OUTLOOK_FORMAT)
class OutlookClient(object):
def __init__(self):
self.outlook = win32com.client.Dispatch('Outlook.Application')
def send_meeting_request(self, subject, time, location, recipients, body,
sender=None):
mtg = self.outlook.CreateItem(OUTLOOK_APPOINTMENT_ITEM)
mtg.MeetingStatus = OUTLOOK_MEETING
mtg.Location = location
if sender:
# Want to set the sender to an address specified in the call
# This is the portion of the code that does not work
organizer = mtg.Recipients.Add(sender)
organizer.Type = OUTLOOK_ORGANIZER
for recipient in recipients:
invitee = mtg.Recipients.Add(recipient)
invitee.Type = OUTLOOK_OPTIONAL_ATTENDEE
mtg.Subject = subject
mtg.Start = outlook_date(time)
mtg.Duration = ONE_HOUR
mtg.ReminderMinutesBeforeStart = THIRTY_MINUTES
mtg.ResponseRequested = False
mtg.Body = body
mtg.Send()
if __name__ == "__main__":
import datetime
ol = OutlookClient()
meeting_time = datetime.datetime.now() + datetime.timedelta(hours=3)
test_recipients = ['me@example.com']
test_sender = 'alternate@example.com'
ol.send_meeting_request('Test Meeting', meeting_time, 'Nowhere',
test_recipients, 'This is a test meeting.',
test_sender)
注意:这与 this question 不同,因为我没有使用 C#,而且我也没有尝试在事后编辑 session 请求。
更新:正如 Marnix Klooster 所建议的,我一直在查看 UI 以了解如何执行此操作,但它似乎并不容易(如果可能的话)。我这样做的一种方法是进入其他用户的日历并在那里创建一个新约会并添加被邀请者。通过从 More Settings...
按钮转到 Advanced
选项卡来添加该邮箱,在更改 Account Settings
时显示的 Server Settings 对话框中.这个问题的另一个答案是如何在通过 COM 访问 Outlook 时将此邮箱用作默认发件人。
最佳答案
根据 this page ,您可以代表其他人发送 session 请求,但您需要有权访问该人的日历。其他人必须任命您为代表。
关于python - 如何创建与备用发件人/组织者的 Outlook session 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399635/
调用 Maven 构建来指定替代文件来代替标准 pom.xml 文件名时是否有参数? 基本上,我需要使用各种配置来运行我的 Maven 构建的测试目标。现在我必须使用外部脚本来使用此配置更新标准 po
基本上我喜欢 PHP 和 SQL 的开发方面。目前我正在处理一个可能需要 MYSQL 复制功能的项目。下面提到的是我的一些要求,只是想知道是否有人可以提供他们的专家建议和提示,以防根据我的需要这是正确
我目前正在做一个教科书中的项目,我遇到了一个 while 循环的模糊问题。课本上的代码如下; while(getImage().getWidth(applet) <= 0); double x = a
如何全局更改Maven的.m2目录的位置? Maven使用${user.home}/.m2进行设置,存储库缓存等。 我知道我可以: 指向存储库缓存的其他目录(通过更改全局配置文件中的localRepo
我正在开发以下代码,一个备用 while 循环: _while = (cond, act) => cond && act() & _while(cond, act) 在这种情况下,act() 旨在每次
到目前为止,我读过的每个教程都说包名应该与您的域相反。但是,如果我没有域并想在市场上发布应用程序怎么办?我可以使用什么备用包命名约定? 最佳答案 随心所欲;这是任意的。 包命名就是为了防止冲突和创建功
您好,我们有一个包含大量 bean、JSP 等的项目。迫切需要在我们的环境中执行自动化测试(我们使用 Maven)。现在,我们可以轻松地为数据库项目层编写测试,为我们实现的各种安全实用程序编写测试。但
这更像是一个 CSS 问题,但我会在此处添加它,因为任何下划线开发人员都可能遇到过它。我有一个索引页面布局: ... ... ... ... 我想用替代文章的类 xyz 定位 div
我正在创建一个 DOM 元素,如下所示; var imgEle = document.createElement('img'); imgEle.src = imgURL;
在应用程序中,当创建特殊类型的对象时,我需要为它们中的每一个生成一个唯一标识。这些对象是通过工厂创建的,并且很有可能在“批量”操作中创建。我意识到框架中的“随机”毕竟不是那么“随机”,所以我尝试按如下
我正在寻找每日备份 sqlite 数据库的正确解决方案。数据库大约 5GB,有规律地增长,每秒接收新数据,并且处于 WAL 模式。该服务是 24/7 全天候服务,因此在备份期间无法停止任何操作。将数据
我正在设置一个多节点 hadoop 集群,并有一个节点之间无密码 SSH 的共享 key 。我将文件命名为 ~/.ssh/hadoop_rsa 并且可以使用 ssh -i ~/.ssh/hadoop_
我的结构如下: blah stuff 它会在整个动态页面中重复几次。我想用两种颜色交替 div 类“post”的背景颜色,但 CSS 的第 nth-child 伪类似乎只适用于直接顺序
例如 Jython 的版本是 2.5.1,这是否意味着它在 2.5.1 版本时与 cpython 语法并行保真? 最佳答案 通常是的,但从技术上讲,没有什么可以阻止替代实现选择他们想要的任何版本号。
我知道 h1 标签对 SEO 很重要,所以我所有的标题都是 H1(太棒了!) 现在,我需要在某些页面上有一个稍微不同的标题(作为文本的第一行)。 通常,我只是将 h1 复制为 h2 并交替使用。 问题
可以为 Perforce 推荐一个类似 P4Win 的替代方案,希望它支持搁置并且可能是开源的?不需要跨平台,只要 Windows 就可以了。 我这么问是因为我不喜欢新的 P4V 界面,而且我发现 P
大家好,提前寻求帮助:我正在尝试将第二个标题添加到自定义临时页面,并在该备用标题中添加一个不同于 style.css 的备用 css 文件。 我像这样从 cat 模板页面调用了自定义 header
我在这里遇到了一些麻烦。我想在鼠标悬停在 div 之后显示图像。 HTML: CSS: #testmouseover { left: -9px; top: -9px;
这个问题在这里已经有了答案: How do I switch my CSS stylesheet using jQuery? (5 个答案) 关闭 9 年前。
有人知道是否有一些用于 Direct X 的替代 API,我的意思是只是 GUI 库!没有像我们在 DXUT 中那样重新实现 Direct X。 最佳答案 对于 Windows 10 上的 Windo
我是一名优秀的程序员,十分优秀!