Создание и сохранение файлов MSG
Aspose.Email поддерживает создание файлов сообщений Outlook (MSG). В этой статье объясняется, как:
- Создать сообщения MSG.
- Создать сообщения MSG с вложениями.
- Создать сообщение MSG с телом в формате RTF.
- Сохранить сообщение как черновик.
- Работать с сжатием тела.
Создание и сохранение сообщений Outlook
Класс MailMessage имеет метод Save(), который может сохранять файлы Outlook MSG на диск или в поток. Приведенные ниже фрагменты кода создают экземпляр класса MailMessage, устанавливают такие свойства, как from, to, subject и body. Метод Save() принимает имя файла в качестве аргумента. Кроме того, сообщения Outlook можно создавать с сжатым телом RTF, используя MapiConversionOptions. Для настройки создайте новое оконное приложение и добавьте ссылку на библиотеку Aspose.Email в проект.
- Создайте новый экземпляр класса MailMessage и задайте свойства From, To, Subject и Body.
- Вызовите метод FromMailMessage класса MailMessage, который принимает объект типа MailMessage. Метод FromMailMessage() конвертирует MailMessage в MailMessage (MSG).
- Вызовите метод MapiMessage.Save() для сохранения файла MSG.
Напишите следующий код в событии нажатия кнопки управления оконным приложением.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
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); |
Создание файлов MSG с вложениями
В приведенном выше примере мы создали простой файл MSG. Aspose.Email также поддерживает сохранение файлов сообщений с вложениями. Все, что вам нужно сделать, это добавить вложения к экземпляру MailMessage. Добавьте вложения, вызвав метод Add() у коллекции MailMessage.Attachments. Добавьте список на форму, созданную выше, и добавьте две кнопки, по одной для добавления и удаления вложений. Приложение, которое добавляет вложения, работает следующим образом:
- Когда нажата кнопка Добавить вложение, отображается Диалоговое окно открытия файла, чтобы помочь пользователям просмотреть и выбрать вложение.
- Когда файл выбран, полный путь добавляется в список.
- Когда файл MSG создан, пути к вложениям извлекаются из списка и добавляются в коллекцию MailMessage.Attachments.
Напишите следующий код в событии нажатия кнопки Добавить вложение.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
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"; | |
#Add attachments to MailMessage | |
eml.add_attachment(Attachment(dataDir + "1.jpg")) | |
eml.add_attachment(Attachment(dataDir + "1.doc")) | |
eml.add_attachment(Attachment(dataDir + "1.pdf")) | |
# Create an instance of the MapiMessage class and pass MailMessage as argument | |
outlookMsg = MapiMessage.from_mail_message(eml); | |
# Save the message (MSG) file | |
strMsgFile = "AddingMSGAttachments_out.msg" | |
outlookMsg.save(dataDir + strMsgFile); |
Добавьте код для добавления вложений в экземпляр MailMessage. Финальный код функции Write Msg записан ниже.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
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"; | |
#Add attachments to MailMessage | |
eml.add_attachment(Attachment(dataDir + "1.jpg")) | |
eml.add_attachment(Attachment(dataDir + "1.doc")) | |
eml.add_attachment(Attachment(dataDir + "1.pdf")) | |
# Create an instance of the MapiMessage class and pass MailMessage as argument | |
outlookMsg = MapiMessage.from_mail_message(eml); | |
# Save the message (MSG) file | |
strMsgFile = "AddingMSGAttachments_out.msg" | |
outlookMsg.save(dataDir + strMsgFile); |
Создание файлов MSG с телом в формате RTF
Вы также можете создать файлы сообщений Outlook (MSG) с телами в формате Rich Text (RTF) с помощью Aspose.Email. Тело в формате RTF поддерживает форматирование текста. Создайте его, установив свойство MailMessage.HtmlBody. Когда вы конвертируете экземпляр MailMessage в экземпляр MailMessage, HTML-тело преобразуется в RTF. Таким образом, форматирование тела электронной почты сохраняется.
Следующий пример создает файл MSG с телом в формате RTF. В заголовке применено жирное и подчеркивание форматирование в HTML-теле. Это форматирование сохраняется при конвертации HTML в RTF.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
eml = MailMessage() | |
eml.is_draft = True | |
# Create an instance of the MapiMessage class and pass MailMessage as argument | |
outlookMsg = MapiMessage.from_mail_message(eml) | |
# Set RTF Body | |
outlookMsg.body_rtf = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Calibri;}}\r\n{\\*\\generator Msftedit 5.41.21.2510;}\\viewkind4\\uc1\\pard\\sa200\\sl276\\slmult1\\lang9\\f0\\fs22 This is RTF Body with this \\b bold \\b0 text.\\par\r\n}\r\n\0" | |
# Save the message (MSG) file | |
strMsgFile = "CreatingMSGFilesWithRtfBody_out.msg" | |
outlookMsg.save(dataDir + strMsgFile); |
Сохранение сообщения в черновом статусе
Электронные письма сохраняются как черновики, когда кто-то начал редактировать их, но хочет вернуться к ним позже, чтобы завершить их. Aspose.Email поддерживает сохранение электронного письма в статусе черновика, устанавливая флаг сообщения. Ниже приведен пример кода для сохранения электронного письма Outlook (MSG) как черновика.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
# Create an instance of the MapiMessage class | |
outlookMsg = MapiMessage() | |
# Set Message Body | |
outlookMsg.body = "Message created with MapiMessage in draft mode." | |
#Set the Unsent flag | |
outlookMsg.set_message_flags(MapiMessageFlags.UNSENT) | |
# Save the message (MSG) file | |
strMsgFile = "SavingMessageInDraftStatus_out.msg" | |
outlookMsg.save(dataDir + strMsgFile); |
Последствия сжатия тела
Метод сжатия RTF тела можно использовать для генерации файлов MSG меньшего размера. Однако это приводит к снижению скорости. Для создания сообщений с улучшенной скоростью установите флаг в значение false. Этот флаг, в свою очередь, влияет на созданные PST: меньшие файлы MSG приводят к меньшим PST, а большие файлы MSG возвращают более медленное создание PST.
For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet | |
eml = MailMessage.load("CreatingAndSavingOutlookMessages_out.msg"); | |
options = MapiConversionOptions() | |
options.use_body_compression = True | |
ae_mapi = MapiMessage.from_mail_message(eml, options); |