Conectando ao Exchange Server
Para conectar aos servidores Exchange 2007, 2010 e 2013 usando o Exchange Web Service, o Aspose.Email fornece a interface IEWSClient que implementa a classe EWSClient. O método EWSClient.GetEWSClient instancia e retorna um objeto IEWSClient que é usado para realizar operações relacionadas a uma caixa de correio Exchange e outras pastas. Este artigo mostra como instanciar objetos de IEWSClient.
Conectando ao Exchange Server usando EWS
O seguinte trecho de código mostra como conectar usando o Exchange Web Service (EWS).
// Para exemplos completos e arquivos de dados, por favor vá para 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;
}
Conectando ao Exchange Server usando IMAP
O Microsoft Exchange Server suporta o protocolo IMAP para acessar itens em uma caixa de correio. Use a classe Aspose.Email ImapClient para conectar ao Exchange Server usando o protocolo IMAP. Para mais informações sobre a classe ImapClient. Primeiro, certifique-se de que os serviços IMAP estão habilitados para seu Exchange Server:
- Abra o Painel de Controle.
- Vá para Ferramentas Administrativas, depois Serviços.
- Verifique o status do serviço Microsoft Exchange IMAP4.
- Se não estiver em execução, habilite/inicie-o.
O seguinte trecho de código mostra como conectar e listar mensagens da pasta Caixa de Entrada do servidor Microsoft Exchange usando o protocolo IMAP.
// Para exemplos completos e arquivos de dados, por favor vá para https://github.com/aspose-email/Aspose.Email-for-.NET
// Conecte-se ao Exchange Server usando a classe ImapClient
ImapClient imapClient = new ImapClient("ex07sp1", "Administrator", "Evaluation1");
imapClient.SecurityOptions = SecurityOptions.Auto;
// Selecione a pasta Caixa de Entrada
imapClient.SelectFolder(ImapFolderInfo.InBox);
// Obtenha a lista de mensagens
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
Console.WriteLine(msgInfo.Subject);
}
// Desconecte do servidor
imapClient.Dispose();
O seguinte trecho de código mostra como usar SSL.
// Para exemplos completos e arquivos de dados, por favor vá para https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{
// Conecte-se ao Exchange Server usando a classe ImapClient
ImapClient imapClient = new ImapClient("ex07sp1", 993, "Administrator", "Evaluation1", new RemoteCertificateValidationCallback(RemoteCertificateValidationHandler));
imapClient.SecurityOptions = SecurityOptions.SSLExplicit;
// Selecione a pasta Caixa de Entrada
imapClient.SelectFolder(ImapFolderInfo.InBox);
// Obtenha a lista de mensagens
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
Console.WriteLine(msgInfo.Subject);
}
// Desconecte do servidor
imapClient.Dispose();
}
// Manipulador de verificação de certificado
private static bool RemoteCertificateValidationHandler(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true; // ignora as verificações e continua
}
Após a conexão com um servidor Exchange usando IMAP e a obtenção da IMapMessageInfoCollection, você pode obter o objeto MessageInfo. O seguinte trecho de código mostra como usar o número de sequência do objeto MessageInfo para salvar uma mensagem específica.
// Para exemplos completos e arquivos de dados, por favor vá para https://github.com/aspose-email/Aspose.Email-for-.NET
// Selecione a pasta Caixa de Entrada
imapClient.SelectFolder(ImapFolderInfo.InBox);
// Obtenha a lista de mensagens
ImapMessageInfoCollection msgCollection = imapClient.ListMessages();
foreach (ImapMessageInfo msgInfo in msgCollection)
{
// Busque a mensagem da caixa de entrada usando seu SequenceNumber de msgInfo
MailMessage message = imapClient.FetchMessage(msgInfo.SequenceNumber);
// Salve a mensagem agora no disco
message.Save(dataDir + msgInfo.SequenceNumber + "_out.msg", SaveOptions.DefaultMsgUnicode);
}
Definindo a versão preferencial do protocolo de criptografia
EWS usa o protocolo de transporte HTTPS para operações suportadas. A criptografia é fornecida pelos protocolos SSL/TLS. Esses protocolos são implementados pelo framework .NET e podem ser diferentes dependendo da versão atual do framework .NET.
Para definir a versão SSL/TLS, use o seguinte código:
var client = new ImapClient("some.host");
client.SupportedEncryption = EncryptionProtocols.Tls13;
ou
var client = new ImapClient("some.host");
client.SetSupportedEncryptionUnsafe(EncryptionProtocols.Tls13);
Observe que, se o protocolo de criptografia especificado não for suportado pela versão atual do framework .NET, a propriedade SupportedEncryption atualiza o protocolo de criptografia para um nível suportado e o método SetSupportedEncryptionUnsafe lança uma exceção.