Создайте черновик Outlook в Python без запуска приложения Outlook - PullRequest
0 голосов
/ 26 ноября 2018

Мне нужно создать черновик электронной почты и сохранить его в формате msg без запуска приложения Outlook.

(Или)

У меня есть существующий черновой файл сообщений, мне нужно изменить отправителя, текст и вложение к этому файлу и сохранить как файл сообщений.

Iпробовал win32 работает нормально, но в моей системе запускается приложение outlook.На моем сервере нет приложения Outlook.

Подскажите, пожалуйста, есть ли другие способы создания файла msg.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Вы можете создать черновик электронной почты и сохранить его как MSG с Aspose.Email для Python через .NET, используя приведенный ниже пример кода:

eml =  MailMessage()

# Set from, to, subject and body properties
eml.from_address = "sender@domain.com";
eml.to.append("receiver@domain.com");
eml.subject = "This is test message";
eml.body = "This is test body";

# Create an instance of the MapiMessage class and pass MailMessage as argument
outlookMsg = MapiMessage.from_mail_message(eml);

# Save the message (MSG) file
strMsgFile = "CreatingAndSavingOutlookMessages_out.msg"
outlookMsg.save(dataDir + strMsgFile);

Примечание: я работаю разработчиком / евангелистом поддержки вAspose.

0 голосов
/ 26 ноября 2018

Если вы не хотите использовать объектную модель Outlook, вы в значительной степени ограничены использованием библиотеки типа Aspose (она обрабатывает файлы MSG без необходимости установки Outlook, но ваш пробег можетварьируются) или Погашение (раскрытие: я являюсь ее автором) - для этого требуется установка системы MAPI (что означает, что Outlook должен быть установлен), но не будет запускаться Outlook, если вы используете RDOSession . CreateMsgFile (допускается путем установки различных свойств RDOMail и / или импорта существующего файла MSG с использованием RDOMail . Import, за которым следует RDOMail.Save.

Обновление за запрос OP . Я не использую Python, но в сценарии VB это будет примерно так:

Set Session = CreateObject("Redemption.RDOSession")
set newMsg = Session.CreateMessageFromMsgFile("c:\temp\new.msg")
newMsg.Import("c:\temp\template.msg", 3)
newMsg.Body = "updated body"
newMsg.Save
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...