Como Enviar email VBA no Excel sem usar o Outlook?

Neste artigo você aprenderá como enviar email VBA no Excel sem usar o Outlook. No artigo você tem o código pronto para a o envio de email.

Como Funciona o Envio de Email?

O envio de e-mail na internet é feito utilizando o protocolo SMTP, provavelmente você já viu isso quando estava configurando o seu Outlook.

Este é um formato padronizado de envio de email utilizado por todos os sistemas, como Gmail e Hotmail.

Nele temos os campos de:

  1. Corpo do email
  2. Destinatários (Para, Cc, Bcc)
  3. Assunto
  4. Anexos

O protocolo é padronizado para facilitar o envio dos emails por qualquer plataforma de envio de emails, assim como a leitura dos emails enviados.

No VBA do Excel é possível realizar o envio de emails utilizando o protocolo SMTP e nest artigo você tem um código pronto para o envio de emails pelo Excel.

Esta funcionalidade no Excel é particularmente útil, pois permite a automação de envio de emails, inclusive com anexos se precisar.

Como enviar e-mail pelo Excel VBA sem usar o Outlook?

O Excel VBA tem por finalidade permitir a automação de processos no Excel.

Um exemplo prático é o envio de email pelo Excel sem a utilização do Outlook.

Para isso é necessário que seja realizada uma configuração inicial com as referências no VBE.

Para tanto, abra o VBE, habilitando a guia Desenvolvedor e clicando no botão Visual Basic, nele siga conforme os passos que temos abaixo.

Para utilizar este código a primeira coisa que você deve fazer é abrir o VBA e clicar em Ferramentas->Referências->Microsoft CDO for Windows 2000 Library marcando este último, que é o componente do Windows para envio de emails.

O segundo passo é criar um módulo e incluir o código fonte abaixo que foi comentado para melhor entendimento. Substitua os pontos aonde está escrito teste pelos dados correspondentes e você conseguirá enviar e-mails a partir do Excel. Este exemplo está configurado para envio de emails a partir de uma conta do GMAIL. 

Código VBA para enviar email pelo Gmail pelo Excel:

teste

'Baseado no código disponibilizado em: http://www.a1vbcode.com/snippet-3691.asp
Function EnviaEmail2()
    Dim iMsg, iConf, Flds

    'Seta as variáveis, lembrando que o objeto Microsoft CDO deverá estar habilitado em Ferramentas->Referências->Microsoft CDO for Windows 2000 Library
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    'Configura o componente de envio de email
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "seuemail@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "suasenha"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update

    With iMsg
        'Email do destinatário
        .To = "destino@gmail.com"
        'Seu email
        .From = "seuemail@gmail.com"
        'Título do email
        .Subject = "Isto é um teste de Envio de email"
        'Mensagem do e-mail, você pode enviar formatado em HTML
        .HTMLBody = "Mensagem enviada com o gmail."
        'Seu nome ou apelido
        .Sender = "Teste"
        'Nome da sua organização
        .Organization = "Empresa Teste"
        'email de responder para
        .ReplyTo = "teste@gmail.com"
        'Anexo a ser enviado na mensagem
        .AddAttachment ("c:\fatura.txt")
        'Passa a configuração para o objeto CDO
        Set .Configuration = iConf
        'Envia o email
        .Send
    End With

    'Limpa as variáveis
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
End Function

Este código pode ser facilmente adaptado para enviar emails com informações de células do Excel e uma mensagem formatada em HTML.

Conclusão

O Excel VBA é uma ferramenta de programação completa e que permite a automação de processos complexos, como o envio de email com anexo.

Desta forma este código VBA para envio de email sem a necessidade do Outlook pode te ajudar neste processo, e também pode ver o vídeo ao topo do artigo que demonstra o funcionamento de uma solução completa de envio do email.

Avalie este post

Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel

plugins premium WordPress