Подключение к серверу Exchange

Чтобы подключиться к серверам Exchange 2007, 2010 и 2013 с помощью веб-службы Exchange, Aspose.Email предоставляет IEWSClient интерфейс, реализующий EWSClient класс. EWSClient.GetEWSClient метод создает экземпляр и возвращает IEWSClient объект, который в дальнейшем используется для выполнения операций, связанных с почтовым ящиком Exchange и другими папками. В этой статье показано, как создавать экземпляры объектов IEWSClient.

Подключение к серверу Exchange с помощью EWS

В следующем фрагменте кода показано, как подключиться с помощью веб-службы Exchange (EWS).

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
private static IEWSClient GetExchangeEWSClient()
{
    const string mailboxUri = "https://outlook.office365.com/ews/exchange.asmx";
    const string domain = @"";
    const string username = @"username@ASE305.onmicrosoft.com";
    const string password = @"password";
    NetworkCredential credentials = new NetworkCredential(username, password, domain);
    IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
    return client;
}

Подключение к серверу Exchange с помощью протокола IMAP

Microsoft Exchange Server поддерживает протокол IMAP для доступа к элементам в почтовом ящике. Используйте Aspose.Email ImapClient класс для подключения к серверу Exchange по протоколу IMAP. Для получения дополнительной информации о ImapClient класс. Во-первых, убедитесь, что службы IMAP включены на вашем сервере Exchange:

  1. Откройте панель управления.
  2. Перейдите в раздел «Инструменты администратора», затем «Службы».
  3. Проверьте состояние службы Microsoft Exchange IMAP4.
  4. Если он еще не запущен, включите/запустите его.

В следующем фрагменте кода показано, как подключать и отображать сообщения из папки «Входящие» на сервере Microsoft Exchange с использованием протокола IMAP.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Connect to Exchange Server using ImapClient class
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;

// Select the Inbox folder
imapClient.SelectFolder(ImapFolderInfo.InBox);

// Get the list of messages
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
    Console.WriteLine(msgInfo.Subject);
}
// Disconnect from the server
imapClient.Dispose();

В следующем фрагменте кода показано, как использовать SSL.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{           
    // Connect to Exchange Server using ImapClient class
    ImapClient imapClient = new ImapClient("ex07sp1", 993, "Administrator", "Evaluation1", new RemoteCertificateValidationCallback(RemoteCertificateValidationHandler));
    imapClient.SecurityOptions = SecurityOptions.SSLExplicit;

    // Select the Inbox folder
    imapClient.SelectFolder(ImapFolderInfo.InBox);

    // Get the list of messages
    ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
    foreach (ImapMessageInfo msgInfo in msgCollection)
    {
        Console.WriteLine(msgInfo.Subject);
    }
    // Disconnect from the server
    imapClient.Dispose();  
}

// Certificate verification handler
private static bool RemoteCertificateValidationHandler(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    return true; // ignore the checks and go ahead
}

После подключения к серверу Exchange по протоколу IMAP и получения IMapMessageInfoCollection, вы можете получить MessageInfo объект. В следующем фрагменте кода показано, как использовать порядковый номер MessageInfo объект для сохранения определенного сообщения.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Select the Inbox folder
imapClient.SelectFolder(ImapFolderInfo.InBox);
// Get the list of messages
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
    // Fetch the message from inbox using its SequenceNumber from msgInfo
    MailMessage message = imapClient.FetchMessage(msgInfo.SequenceNumber);

    // Save the message to disc now
    message.Save(dataDir + msgInfo.SequenceNumber + "_out.msg", SaveOptions.DefaultMsgUnicode);
}

Настройка предпочтительной версии протокола шифрования

Для поддерживаемых операций EWS использует транспортный протокол HTTPS. Шифрование обеспечивается SSL/TLS протоколы. Эти протоколы реализованы фреймворком.NET и могут отличаться в зависимости от текущей версии платформы.NET.

Установить SSL/TLS версия использует следующий код:

        var client = new ImapClient("some.host");
        client.SupportedEncryption = EncryptionProtocols.Tls13;

or

        var client = new ImapClient("some.host");
        client.SetSupportedEncryptionUnsafe(EncryptionProtocols.Tls13);

Обратите внимание: если указанный EncryptionProtocol не поддерживается текущей версией платформы.NET, SupportedEncryption свойство понижает протокол шифрования до поддерживаемого уровня, а SetSupportedEncryptionUnsafe метод генерирует исключение.