Можно перехватить и переписать электронную почту на стороне клиента Outlook с помощью Ironpython? - PullRequest
1 голос
/ 17 сентября 2009

Я хочу перехватить и преобразовать некоторые автоматические электронные письма в более читаемый формат. Я считаю, что это возможно с помощью VBA, но я бы предпочел манипулировать текстом с помощью Python. Могу ли я создать клиентский скрипт ironpython для предварительной обработки определенных писем?

EDIT: Я считаю, что это можно сделать с помощью правил внешнего вида. В Outlook 2007 вы можете сделать: Сервис-> Правила -> Новое правило

"проверять сообщения, когда они приходят"

рядом

[фильтр для обработки электронных писем]

рядом

"запустить скрипт"

В «запустить скрипт» он позволяет вам использовать скрипт VBA.

Ответы [ 4 ]

2 голосов
/ 18 сентября 2009

Вы можете сослаться на объектную модель outlook здесь: http://msdn.microsoft.com/en-us/library/ms268893.aspx

Для подключения к Outlook через COM вам потребуется pywin32 .

Я не знаю ссылок на python, но вы можете ссылаться на примеры сценариев и «переводить» на python. Сначала это сложно, но как только вы поймете объекты и их использование в python, это не сложно.

Похоже, вы хотите посмотреть:

Как выполнить действия при получении сообщения электронной почты

2 голосов
/ 18 сентября 2009

Я могу предложить вам только указатель. Несколько лет назад я использовал байесовский фильтр спама в Outlook. Он был написан на Python и содержал плагин для Outlook, который будет фильтровать входящую почту. Название программного обеспечения было SpamBayes , и проект все еще в сети. Поскольку это открытый исходный код, вы, вероятно, найдете всю необходимую информацию о том, как подключить почтовый фильтр в Outlook. Это должно дать вам достаточно фона, чтобы добавить код, который на самом деле сможет трансформировать почтовый контент. Насколько я понимаю, он был написан на ванильном Python (CPython), но если вам удобнее работать с IronPython, его не сложно перевести. Попробуй.

1 голос
/ 12 ноября 2009

Эта работа еще не завершена, но я нашел часть ответа с помощью других постов. Вот инструкции по переписыванию указанных писем с помощью скрипта. Я использую Outlook 2007.

  1. Скачать и установить pywin32

  2. Скачать и установить ExchangeCdo.exe

  3. Поместите этот код в файл и запустите его с 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
0 голосов
/ 28 марта 2013

Здесь есть ответ: как запустить скрипт python в outlook, используя правила? , которые могут вам помочь. Вы можете создать простой VBA-скрипт для запуска Python-скрипта.

...