Подключение к серверу 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:
- Откройте панель управления.
- Перейдите в раздел «Инструменты администратора», затем «Службы».
- Проверьте состояние службы Microsoft Exchange IMAP4.
- Если он еще не запущен, включите/запустите его.
В следующем фрагменте кода показано, как подключать и отображать сообщения из папки «Входящие» на сервере 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 метод генерирует исключение.