Como usar a biblioteca Cdosys.dll para enviar uma mensagem de email com anexos

Número de KB original: 310212

Resumo

Este artigo descreve como usar o CDO (Collaboration Data Objects) para a biblioteca do Windows 2000 (Cdosys.dll) para enviar uma mensagem de email com anexos. Você pode enviar texto ou HTML ou uma página da Web no corpo da mensagem de email usando o servidor SMTP local ou usando um servidor host inteligente no Microsoft Visual C#.

Observação

A biblioteca Cdosys.dll também é conhecida como CDOSYS.

Mais informações

Para usar o CDOSYS conforme descrito na seção Resumo, siga estas etapas:

  1. Inicie o Microsoft Visual Studio.

  2. No menu Arquivo , selecione Novo e, em seguida, selecione Projeto.

  3. Em Tipos de Projeto, selecione Visual C#e selecione Aplicativo de Console em Modelos. Por padrão, Program.cs é criado.

    Observação

    No Microsoft Visual C# .NET 2003, o Visual C# é alterado para Projetos do Visual C#. Por padrão, Class1.cs é criado.

  4. Adicione uma referência à Biblioteca do Microsoft CDO for Windows 2000. Para fazer isso, siga estas etapas:

    1. No menu Projeto , selecione Adicionar Referência.

    2. Na guia COM , localize o CDO da Microsoft para a Biblioteca do Windows 2000.

      Observação

      No Visual C# .NET 2003, selecione Selecionar.

    3. Para aceitar suas seleções, selecione OK na caixa de diálogo Adicionar Referências .

      Se você receber uma caixa de diálogo para gerar wrappers para as bibliotecas selecionadas, selecione Sim.

  5. Na janela de código, substitua todo o código pelo seguinte código:

    namespace CdoSys {
        using System;
        class Class1 {
            static void Main (string[] args) {
                try {
                    CDO.Message oMsg = new CDO.Message ();
                    CDO.IConfiguration iConfg;
    
                    iConfg = oMsg.Configuration;
    
                    ADODB.Fields oFields;
                    oFields = iConfg.Fields;
    
                    // Set configuration.
                    ADODB.Field oField = oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
    
                    //TODO: To send by using the smart host, uncomment the following lines:
                    //oField.Value = CDO.CdoSendUsing.cdoSendUsingPort;
                    //oField = oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"];
                    //oField.Value = "smarthost";
    
                    // TODO: To send by using local SMTP service.
                    //oField = oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
                    //oField.Value = 1;
    
                    oFields.Update ();
    
                    // Set common properties from message.
    
                    //TODO: To send text body, uncomment the following line:
                    //oMsg.TextBody = "Hello, how are you doing?";
    
                    //TODO: To send HTML body, uncomment the following lines:
                    //String sHtml;
                    //sHtml = "<HTML>\n" +
                    //"<HEAD>\n" +
                    //"<TITLE>Sample GIF</TITLE>\n" +
                    //"</HEAD>\n" +
                    //"<BODY><P>\n" +
                    //"<h1><Font Color=Green>Inline graphics</Font></h1>\n" +
                    //"</BODY>\n" +
                    //"</HTML>";
                    //oMsg.HTMLBody = sHtml;
    
                    //TOTO: To send WEb page in an e-mail, uncomment the following lines and make changes in TODO section.
                    //TODO: Replace with your preferred Web page
                    //oMsg.CreateMHTMLBody("http://www.microsoft.com",
                    //CDO.CdoMHTMLFlags.cdoSuppressNone,
                    //"", "");
                    oMsg.Subject = "Test SMTP";
    
                    //TODO: Change the To and From address to reflect your information.
                    oMsg.From = "someone@example.com";
                    oMsg.To = "someone@example.com";
                    //ADD attachment.
                    //TODO: Change the path to the file that you want to attach.
                    oMsg.AddAttachment ("C:\\Hello.txt", "", "");
                    oMsg.AddAttachment ("C:\\Test.doc", "", "");
                    oMsg.Send ();
                } catch (Exception e) {
                    Console.WriteLine ("{0} Exception caught.", e);
                }
                return;
            }
        }
    }
    
  6. Onde TODO aparece no código, modifique o código conforme indicado.

  7. Para compilar e executar o programa, pressione F5.

  8. Verifique se a mensagem de email foi enviada e recebida.

Referências

Para obter mais informações sobre o desenvolvimento do Microsoft Office com o Visual Studio, consulte Desenvolvimento do Microsoft Office com o Visual Studio.