Переместить электронную почту в папку на сервере Microsoft Exchange с помощью С#

Microsoft Exchange Server — это широко используемая платформа для совместной работы, которая предоставляет электронную почту, управление контактами, ведение календаря и другие службы. В предыдущем посте мы показали вам, как программно получать доступ и читать электронную почту с сервера MS Exchange в приложении .NET. Однако вам также может понадобиться скопировать электронные письма из одной папки в другую на сервере Exchange. Для этого в этой статье показано, как перемещать электронные письма в определенную папку на сервере MS Exchange в C# .NET.

С# .NET API для перемещения электронной почты на Microsoft Exchange Server

Для перемещения писем на MS Exchange Server мы будем использовать Aspose.Email для .NET. API предоставляет простые способы подключения и работы с MS Exchange Server. Вы можете установить его через NuGet или скачать его DLL.

PM> Install-Package Aspose.Email

Переместить электронную почту в папку на сервере MS Exchange в С#

Ниже приведены шаги для перемещения сообщений электронной почты в определенную папку на сервере MS Exchange в C#.

В следующем примере кода показано, как переместить электронное письмо в папку на сервере MS Exchange Server в C# .NET.

try
{
    // Создайте экземпляр класса EWSClient, предоставив учетные данные
    IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

    // Вызовите метод ListMessages, чтобы просмотреть информацию о сообщениях из папки «Входящие».
    ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);

    // Прокрутите коллекцию, чтобы получить URI сообщения.
    foreach (ExchangeMessageInfo msgInfo in msgCollection)
    {
        if (msgInfo.From.Address.Contains("jhon.vick"))
        {
            String strMessageURI = msgInfo.UniqueUri;

            // Скопировать в определенную папку
            string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
        }
    }                
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Переместить новую электронную почту в папку на сервере MS Exchange

Вы также можете переместить вновь созданное электронное письмо в определенную папку на сервере MS Exchange. Ниже приведены шаги для выполнения этой операции.

  • Сначала инициализируйте объект IEWSClient, используя имя пользователя, пароль, домен и URI.
  • Затем создайте новое сообщение, используя класс MailMessage.
  • После этого получите URI сообщения электронной почты, возвращенный методом IEWSClient.AppendMessage(MailMessage).
  • Наконец, переместите сообщение электронной почты с помощью метода IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).

В следующем примере кода показано, как переместить новое сообщение электронной почты в папку на сервере MS Exchange.

try
{
    // Создайте экземпляр класса EWSClient, предоставив учетные данные
    IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

    // Создать сообщение
    MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");

    // Получить URI сообщения
    string messageUri = client.AppendMessage(message);

    // Скопировать сообщение
    string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для использования Aspose.Email для .NET без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как перемещать электронные письма в определенную папку на сервере Microsoft Exchange Server с помощью C#. Кроме того, вы видели, как переместить только что созданное сообщение электронной почты в определенную папку на сервере Exchange. Кроме того, вы можете изучить документацию, чтобы узнать больше об Aspose.Email для .NET. Также вы можете задать свои вопросы через наш форум.

Смотрите также