Geral

Lendo E-mails em servidor Exchange – com Visual C# e Interop

Ola Pessoal,

Tivemos um requisito aqui em uma aplicação pontual, na empresa. Precisavamos ler e trabalhar no geral com as mensagens em um servidor Exchange, mas tudo isso através de uma aplicação ASP.NET com C#.

Depois de rápidas discussões decidimos por uma solução bem simples, usar a dll Microsoft.Office.Interop.Outlook . Esta dll faz com que possamos usar os recursos nativos do outlook, ou seja, se seu outlook estiver com sua conta exchange configurada conseguimos usa-lo para efetuar as tarefas como ler um email por exemplo.

Abaixo vou descrever como ficou esta solução rápida:

  1. Com nossa aplicação ASP.NET criado adicionei a referencia da DLL Microsoft.Office.Interop.Outlook ( a versão depende muito da instalação do Office em sua máquina, procure usar a versão que você ira ter no servidor, afinal sem usaremos o proprio outlook para executar as tarefas)
  2. Agora em nossa página podemos usar o seguinte código como exemplo para ler os email da caixa de entrada configurada no outlook local.
    //Criando uma instancia do outlook
    Application outlook = new ApplicationClass();
    
    //Agora vamos nos autenticar
    NameSpace ns = outlook.GetNamespace("Mapi");
    object _missing = Type.Missing;
    ns.Logon(_missing, _missing, false, true);
    
    
    //Apenas como exemplo vamos selecionar a Inbox para ler seus e-mails
    MAPIFolder inbox = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
    
    //Exemplo de recurso da DLL, abaixo vemos com identificar quantos emails não lidos ainda
    int unread = inbox.UnReadItemCount;
    
    //Agora podemos fazer um loop e ler todos os emails da pasta selecionada
    foreach (MailItem mail in inbox.Items)
    {
        string body = mail.Body;
        string subject = mail.Subject;
    }

Pessoal este é um pequeno exemplo das inúmeras funcionalidades que podemos usar usando o Interop do Office.

[]s


Bookmark and Share

1 Comment

  1. Ola Adriano
    Cara achei legal esse post, vc sabe como posso fazer a mesma coisa só que eu quero fazer isso pra receber digamos do gmail
    vlws

Deixe uma resposta