Продвинутое управление электронными сообщениями

Отслеживание процесса конвертации документа

Aspose.Email предоставляет возможность отслеживать процесс конвертации документа. Для этого API предоставляет SaveOptions.CustomProgressHandler. который представляет метод, обрабатывающий события прогресса. Типы событий прогресса представлены ProgressEventType перечисление. The ProgressEventType перечисление имеет следующие члены.

  • MimeStructureCreated: Это событие сообщает, что MIME-структура создана.
  • MimePartSaved: Это событие сообщает, что сохранение одной MIME-части завершено.
  • SavedToStream: Это событие сообщает, что все MIME-части сохранены в поток.

Следующий пример кода демонстрирует использование SaveOptions.CustomProgressHandler и ProgressEventType перечисление отслеживает прогресс конвертации документа.

Ниже представлен код пользовательского класса, используемого в приведённом выше примере кода.

Отображать гиперссылки с пользовательскими стилями

Бывают случаи, когда необходимо выводить гиперссылка с определённым стилем в соответствии с требованиями вашего приложения. Для этого Aspose.Email предоставляет HyperlinkRenderingCallback. Вы можете передать HyperlinkRenderingCallback в качестве параметра функции MailMessage.GetHtmlBodyText.

Следующий фрагмент кода показывает, как использовать HyperlinkRenderingCallback для вывода гиперссылок с использованием вашего собственного стиля.

Отображать информацию в пользовательском порядке в файлах MHTML

Aspose.Email предоставляет MhtSaveOptions.RenderingHeaders свойство, которое возвращает список заголовков для рендеринга. Вы можете добавить заголовки, используя MhtTemplateName класс. Порядок, в котором добавляются заголовки, определяет порядок отображения информации.

Следующее изображение сравнивает три вывода, сгенерированные примерным кодом.

todo:image_alt_text

Следующий фрагмент кода демонстрирует использование MhtSaveOptions.RenderingHeaders свойство для установки порядка отображения информации в выходных файлах MHTML.

Отображать необязательных участников в файлах MHT

Работая с форматом MHT, вы можете показывать или скрывать информацию о необязательных участниках в заголовке календарных событий. Чтобы настроить MhtSaveOptions для работы с файлами MHT вам нужно понять, как MhtFormatOptions.RenderCalendarEvent и MhtFormatOptions.WriteHeader параметры позволяют настроить вывод в соответствии с вашими потребностями, особенно при управлении отображением необязательных участников.

  • MhtFormatOptions.RenderCalendarEvent: Этот параметр контролирует, отображаются ли детали календарных событий в файле MHT. Установив эту опцию, вы гарантируете, что в вывод будет включена полная информация о событии, включая сведения об участниках. Это необходимо для предоставления полной документации календарных событий.

  • MhtFormatOptions.WriteHeader: Этот параметр определяет, записываются ли заголовки, содержащие метаданные, такие как тема, дата и информация об участниках (включая необязательных участников, если они настроены), в файл MHT. Включение этой опции гарантирует, что сопутствующая контекстуальная информация будет включена в сообщение, улучшая его понимание.

Пример кода ниже демонстрирует, как использовать функцию display optional attendees при сохранении сообщения в формате mhtml:

MhtSaveOptions options = new MhtSaveOptions()
{
    MhtFormatOptions = MhtFormatOptions.RenderCalendarEvent | MhtFormatOptions.WriteHeader
};

MailMessage eml = MailMessage.Load(fileName);
eml.Save(fileName + ".mhtml", options);

Если вам нужно исключить информацию о необязательных участниках из файла MHT, просто очистите шаблон формата для OptionalAttendees перед сохранением:

//if you need to skip OptionalAttendees in mhtml file you can clear format template for OptionalAttendees
options.FormatTemplates[MhtTemplateName.OptionalAttendees] = "";
msg.Save(fileName + "2.mhtml", options);

Сохранить все заголовки в MHTML

Этот MhtSaveOptions.SaveAllHeaders свойство MhtSaveOptions класс определяет, необходимо ли сохранять все заголовки в результирующем mhtml или нет. Следующий фрагмент кода показывает, как сохранить все заголовки файла mhtml:

var eml = MailMessage.Load("message.eml");
var sopt = SaveOptions.DefaultMhtml;
sopt.SaveAllHeaders = true;
eml.Save("message.mhtml", sopt);

Обработка возвратных сообщений

Очень часто сообщение, отправленное получателю, может отскочить по любой причине, например из‑за недействительного адреса получателя. API Aspose.Email обладает возможностью обрабатывать такое сообщение для проверки, является ли оно возвращённым письмом или обычным электронным письмом. The Проверка возврата метод MailMessage класс возвращает действительный результат, если электронное сообщение является отскочившим письмом. Эта статья демонстрирует использование BounceResult класс, предоставляющий возможность проверять, является ли сообщение отскочившим письмом. Он также предоставляет подробную информацию о получателях, предпринятых действиях и причине уведомления. Следующий фрагмент кода показывает, как обрабатывать отскочившие сообщения.

Байесовский анализатор спама

Aspose.Email предоставляет фильтрацию электронной почты с использованием байесовского анализатора спама. Он предоставляет SpamAnalyzer класс для этой цели. Эта статья показывает, как обучить фильтр различать спам и обычные письма на основе словарной базы.

Получить преамбулу и эпилог из EML сообщений

Электронное сообщение может содержать скрытую информацию в виде простого текста до тела сообщения (преамбула) или после него (эпилог). Обычно это дополнительная информация или контекст для получателя до или после чтения основного содержания письма. Вы можете получить эту информацию с помощью MailMessage.Preamble или/и MailMessage.Epilogue соответственно свойства.

Следующий фрагмент кода показывает, как получить тексты преамбулы и эпилога:

// Gets or sets a preamble text.
public string Preamble

// Gets or sets an epilogue text.
public string Epilogue

Отслеживание электронной почты с помощью MDN и уведомлений о прочтении

API Aspose.Email поддерживает отслеживание писем с использованием Message Disposition Notification (MDN). Это достигается запросом уведомлений о прочтении и созданием необходимой информации. The MailMessage.ReadReceiptTo свойство получает или задает адрес для уведомления о прочтении. The CreateReadReceipt и ReadReceiptRequested методы используются для создания и получения информации о том, запрошены ли уведомления о прочтении. Следующий фрагмент кода показывает, как отслеживать электронные письма с помощью API Aspose.Email.