是否可以使用ironpython在outlook客户端截取和重写电子邮件?
我想截取一些自动发送的电子邮件,并将其转换成更可读的格式。我相信使用VBA可以做到这一点,但我更愿意使用Python操作文本。我可以创建ironpython客户端脚本来预处理某些电子邮件吗 编辑: 我相信这可以通过outlook规则实现。在Outlook 2007中,您可以执行以下操作: 工具->规则->新规则 “邮件到达时检查邮件” 下一个 [筛选要处理的电子邮件] 下一个 “运行脚本”是否可以使用ironpython在outlook客户端截取和重写电子邮件?,python,vba,outlook,ironpython,Python,Vba,Outlook,Ironpython,我想截取一些自动发送的电子邮件,并将其转换成更可读的格式。我相信使用VBA可以做到这一点,但我更愿意使用Python操作文本。我可以创建ironpython客户端脚本来预处理某些电子邮件吗 编辑: 我相信这可以通过outlook规则实现。在Outlook 2007中,您可以执行以下操作: 工具->规则->新规则 “邮件到达时检查邮件” 下一个 [筛选要处理的电子邮件] 下一个 “运行脚本” 在“运行脚本”中,它允许您使用VBA脚本。我只能为您提供一个指针。几年前,我在Outlook中使用了贝叶斯
在“运行脚本”中,它允许您使用VBA脚本。我只能为您提供一个指针。几年前,我在Outlook中使用了贝叶斯垃圾邮件过滤器。它是用Python编写的,并提供了一个Outlook插件来过滤传入的邮件。该软件的名称是,该项目仍然在线。由于它是开源的,您可能会找到如何将邮件过滤器插入Outlook的所有必要信息。这将为您提供足够的背景,以便添加能够转换邮件内容的代码。我的理解是,它是用香草Python(CPython)编写的,但如果您更熟悉IronPython,那么翻译起来应该不难。试试看。我只能给你一个指针。几年前,我在Outlook中使用了贝叶斯垃圾邮件过滤器。它是用Python编写的,并提供了一个Outlook插件来过滤传入的邮件。该软件的名称是,该项目仍然在线。由于它是开源的,您可能会找到如何将邮件过滤器插入Outlook的所有必要信息。这将为您提供足够的背景,以便添加能够转换邮件内容的代码。我的理解是,它是用香草Python(CPython)编写的,但如果您更熟悉IronPython,那么翻译起来应该不难。试一试。您可以在此处引用outlook对象模型: 通过COM连接到outlook,您将需要 据我所知,没有python引用,但您可以引用示例脚本并将其“翻译”为python。一开始很难,但一旦您了解了对象及其在python中的用法,就不难了 看起来您要查看:
您可以在此处引用outlook对象模型: 通过COM连接到outlook,您将需要 据我所知,没有python引用,但您可以引用示例脚本并将其“翻译”为python。一开始很难,但一旦您了解了对象及其在python中的用法,就不难了 看起来您要查看:
这是一项正在进行的工作,但在其他帖子的帮助下,我已经找到了部分答案。以下是通过运行脚本重新编写指定电子邮件的说明。我正在使用Outlook 2007
cmd
运行它:
import os, sys, re
import win32com.client
session = win32com.client.gencache.EnsureDispatch("MAPI.session")
win32com.client.gencache.EnsureDispatch("Outlook.Application")
outlook = win32com.client.Dispatch("Outlook.Application")
#print '\n'.join(dir(outlook))
mapi = outlook.GetNamespace('MAPI')
inbox = mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
items = inbox.Items
#items.Restrict("[Unread] = true")
#print '\n'.join(dir(items))
while True:
item = items.GetNext()
if item == None: break
#print '\n'.join(dir(item))
if re.compile(r'crazy email').search(item.Subject):
print item.Subject
print item.Body
# works VVVV
item.Body = 'whoya!'
item.Save()
break
这是一项正在进行的工作,但在其他帖子的帮助下,我已经找到了部分答案。以下是通过运行脚本重新编写指定电子邮件的说明。我正在使用Outlook 2007
cmd
运行它:
import os, sys, re
import win32com.client
session = win32com.client.gencache.EnsureDispatch("MAPI.session")
win32com.client.gencache.EnsureDispatch("Outlook.Application")
outlook = win32com.client.Dispatch("Outlook.Application")
#print '\n'.join(dir(outlook))
mapi = outlook.GetNamespace('MAPI')
inbox = mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
items = inbox.Items
#items.Restrict("[Unread] = true")
#print '\n'.join(dir(items))
while True:
item = items.GetNext()
if item == None: break
#print '\n'.join(dir(item))
if re.compile(r'crazy email').search(item.Subject):
print item.Subject
print item.Body
# works VVVV
item.Body = 'whoya!'
item.Save()
break
这里有一个答案:这可能会帮助你。您可以制作一个简单的VBA脚本来触发python脚本。这里有一个答案:这可能会对您有所帮助。您可以制作一个简单的VBA脚本来触发python脚本。您可以参考一下如何在VBA中实现这一点吗?当您处于公司环境中,并且无法更改实际上包含某些优点的难看电子邮件的格式时,有时您必须在系统周围工作。这就是生活。你能谈谈如何在VBA中做到这一点吗?当你在一个公司环境中,你不能改变一封实际上包含一些优点的丑陋电子邮件的格式时,有时你必须在系统周围工作。生活就是这样,谢谢!我从未使用过ironpython,我只是认为这是您与outlook交互的方式。我通常使用CPython。@Ross与此同时,我读到尊敬的马克·哈蒙德(Mark Hammond)也参与了这个项目,特别是插件,所以它可能有点win32的酷:-)。Mark负责(C)Python与Windows的良好集成。谢谢!我从未使用过ironpython,我只是认为这是您与outlook交互的方式。我通常使用CPython。@Ross与此同时,我读到尊敬的马克·哈蒙德(Mark Hammond)也参与了这个项目,特别是插件,所以它可能有点win32的酷:-)。Mark负责(C)Python与Windows的良好集成。