Outlook 2010: Как составить электронную почту из VBScript/JScript

У меня есть некоторый код JScript, который я использую в течение нескольких лет, который может прочитать файл XML и открыть окно составления Outlook с предварительно заполненными полями to/cc/subject и предварительно прикрепленными файлами на основе данных XML. Затем пользователь может прикрепить больше файлов, внести любые исправления и отправить электронное письмо. Основная часть кода использует CDO для создания нового сообщения:

var ol = WScript.CreateObject("Outlook.Application");
var msg = ol.CreateItem(olMailItem);

К сожалению, я только что обнаружил, что это больше не работает с Outlook 2010 64-bit, поскольку CDO больше не поддерживается. Microsoft предлагает обновить приложения для использования объектной модели Outlook, но я не могу найти никаких примеров того, как можно использовать объектную модель Outlook для открытия окна создания из VBScript или JScript. Все примеры "VB" на MSDN приводят к синтаксическим ошибкам при запуске через интерпретатор VBScript.

Может кто-нибудь указать мне на короткие примеры, демонстрирующие, как взаимодействовать с Outlook 2010 с помощью VBScript или JScript?

РЕДАКТИРОВАТЬ: только что понял, проблема в том, что я использую MAPI.Session для настройки свойств вложения, и это то, что не работает. Я думаю, мне нужно найти, что это было заменено:

var oSession = WScript.CreateObject("MAPI.Session");
oSession.Logon("", "", false, false);
var oMsg = oSession.GetMessage(strMsgID);
var oAttachFields = oMsg.Attachments.Item(i+1).Fields;
...

1 ответ

Решение

Хорошо, оказалось, что большая часть материала MAPI.Session была объединена с реальными объектами, которые все еще доступны, используя первый фрагмент кода в моем посте ("Outlook.Application"). Я использовал материал MAPI.Session только для того, чтобы скрыть вложения изображений (чтобы они могли отображаться в теле сообщения в виде строки, а не в виде файлов, прикрепленных к электронному письму), но теперь это, похоже, включается автоматически.

Так что все, что мне на самом деле нужно было сделать, это удалить материал MAPI.Session, и тогда все начало работать. В скором времени я опубликую ссылку на код, если кто-то посчитает его полезным.

РЕДАКТИРОВАТЬ: Вот код на GitHub, если кто-то за сравнительно простым примером.

Другие вопросы по тегам