HTML JPG PDF XML PST
Aspose.Email  для .NET
PST

Массовая генерация отчетов в формате PST с помощью C#

Генерировать электронные сообщения пакетно и добавлять их в файл PST через .NET API.

Как создавать отчёты на основе PST с использованием C#

Для создания PST‑отчетов мы будем использовать

Aspose.Email для .NET

API, представляющий собой богатый функциями, мощный и простой в использовании API для генерации отчетов на платформе C#. Откройте

NuGet

В менеджере пакетов найдите Aspose.Email и установите. Вы также можете использовать следующую команду в консоли Package Manager.

Команда консоли менеджера пакетов


PM> Install-Package Aspose.Email

Шаги по сборке PST с помощью C#

  1. Создать шаблон как MailMessage и добавить динамические поля
  2. Создать источник данных и сопоставление
  3. Инициализировать TemplateEngine, используя объект MailMessage
  4. Вызвать метод TemplateEngine.Instantiate для пакетного создания сообщений
  5. Создать новый PST с помощью метода PersonalStorage.Create
  6. Добавить папку в PST
  7. Добавлять сообщения из TemplateEngine в папку с помощью метода FolderInfo.Add
  8. Сохранить в формате PST

Системные требования

Aspose.Email для .NET поддерживается на всех основных операционных системах. Просто убедитесь, что у вас есть следующие предварительные требования.

  • Microsoft Windows или совместимая ОС с .NET Framework, .NET Core и Xamarin
  • Среда разработки, например Microsoft Visual Studio
  • Aspose.Email for .NET, указанный в вашем проекте
 

Пример кода C# для генерации отчетов сообщений в формате PST


    // create a template from MailMessage
    MailMessage template = new MailMessage();
    // add template field to subject
    template.Subject = "Hello, #FirstName#";
    template.From = new MailAddress("This email address is being protected from spambots. You need JavaScript enabled to view it.", "This email address is being protected from spambots. You need JavaScript enabled to view it.");
    // add template field to receipt
    template.To.Add(new MailAddress("#Receipt#", true));
    // add template field to html body
    template.HtmlBody = "Dear #FirstName# #LastName# Sent Date: #Date#";
    // create a new TemplateEngine with the template message.
    var engine = new Email.Tools.Merging.TemplateEngine(template);
    
    // fill a DataTable
    var dt = new System.Data.DataTable();
    dt.Columns.Add("Receipt", typeof(string)); 
    dt.Columns.Add("First Name", typeof(string));
    dt.Columns.Add("Last Name", typeof(string));
    dt.Columns.Add("Date", typeof(DateTime));
    System.Data.DataRow dr;
    
    dr = dt.NewRow(); 
    dr["Receipt"] = "This email address is being protected from spambots. You need JavaScript enabled to view it."; dr["First Name"] = "Nancy"; dr["Last Name:"] = "Davolio"; dr["Date"] = System.DateTime.Now;
    dt.Rows.Add(dr);
    
    dr = dt.NewRow();
    dr["Receipt"] = "This email address is being protected from spambots. You need JavaScript enabled to view it."; dr["First Name"] = "Andrew"; dr["Last Name"] = "Fuller"; dr["Date"] = System.DateTime.Now;
    dt.Rows.Add(dr);
    
    dr = dt.NewRow();
    dr["Receipt"] = "This email address is being protected from spambots. You need JavaScript enabled to view it."; dr["First Name"] = "Janet"; dr["Last Name"] = "Leverling"; dr["Date"] = System.DateTime.Now;
    dt.Rows.Add(dr);
    
    // map columns
    var mappings = new System.Data.Common.DataColumnMappingCollection();
    mappings.Add(new System.Data.Common.DataColumnMapping("Receipt", "Receipt"));
    mappings.Add(new System.Data.Common.DataColumnMapping("First Name", "FirstName"));
    mappings.Add(new System.Data.Common.DataColumnMapping("Last Name", "LastName"));
    mappings.Add(new System.Data.Common.DataColumnMapping("Date", "Date"));
    Aspose.Email.MailMessageCollection messages;
    
    // create new PST
    var pst = Email.Storage.Pst.PersonalStorage.Create("storage.pst", Email.Storage.Pst.FileFormatVersion.Unicode);
    // add folder to PST
    var inboxFolder = pst.RootFolder.AddSubFolder("Inbox");
    
    //  create messages from engine
    messages = engine.Instantiate(dt, mappings);
    for (int i = 0; i < messages.Count; i++)
    {
        // save messages in PST format
        messages[i].Save(i + ".pst");
        inboxFolder.AddMessage(MapiMessage.FromMailMessage(messages[i]));
    }
    // save in PST format
    pst.SaveAs("output.pst", Email.Storage.Pst.FileFormat.Pst);
 
  • Об API Aspose.Email для .NET

    Aspose.Email — это решение для разбора форматов Microsoft Outlook и Thunderbird. С его помощью можно легко создавать, изменять и конвертировать форматы электронной почты и хранилищ, такие как MSG, EMLX, EML и MHT. Обработка вложений, настройка заголовков сообщений и реализация различных сетевых протоколов, таких как POP3, IMAP и SMTP для отправки и получения писем, становятся гораздо проще. Это независимое API и не требует установки Microsoft Outlook или любого другого программного обеспечения.

    Бесплатное приложение для сборки PST

    Посмотрите наши живые демонстрации, чтобы создавать PST файлы со следующими преимуществами.

      Не нужно ничего загружать или устанавливать
      Не требуется писать или компилировать код
      Просто загрузите файл PST и нажмите кнопку "Assemble"
      Скачайте полученный файл PST по ссылке

    PST What is PST File Format

    Файлы с расширением .PST представляют собой Outlook Personal Storage Files (также называемые Personal Storage Table), которые хранят разнообразную пользовательскую информацию. Информация пользователей хранится в папках разных типов, включая электронные письма, элементы календаря, заметки, контакты и несколько других форматов файлов. PST‑файлы используются для офлайн‑архивирования данных электронной почты, которые позже можно загрузить и просмотреть в различных приложениях.

    Read More

    Другие поддерживаемые форматы создания отчетов

    С помощью C# можно легко генерировать отчёты в нескольких форматах, включая.

    EML (Сообщения электронной почты Outlook)
    MBOX (Электронные сообщения)
    MSG (Форматы Outlook и Exchange)
    OST (Файлы Offline Storage)