Guia do Excel

Envio de Mala Direta por Email com VBA

MR
Marcos Rieper

Especialista em Excel

Atualizado em 08 de julho de 2026 Publicado em 07 de abril de 2011 2 min de leitura

Objetivo: Enviar mala direta por email a partir de uma lista de clientes, alterando o corpo da mensagem conforme cada cliente.

//

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

 


Fazendo uma pequena adaptação do post http://guiadoexcel.com.br/enviar-email-com-excel-sem-usar-o-outlook.

Neste artigo temos um pequeno exemplo de uma mensagem particular para cada cliente da lista sendo enviado diretamente pelo Excel com uso de VBA.

Atenção: Não esqueça de abrir o VBA e alterar os campos com o seu email, senha e configurações de porta smtp, etc. Se for Gmail, basta colocar seu nome, email e senha.

Este artigo também foi criado para auxiliar o leitor Luiz de São Paulo que estava com esta necessidade. Espero que ajude.

Código Fonte:

'Baseado no código disponibilizado em: http://www.a1vbcode.com/snippet-3691.asp
Sub lsEnviaEmail(ByVal lEmail As String, ByVal lMsg As String)
    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.rieper@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 = lEmail
        'Seu email
        .From = "SeuNome "
        'Título do email
        .Subject = "Isto é um teste de Envio de email"
        'Mensagem do e-mail, você pode enviar formatado em HTML
        .HTMLBody = lMsg
        'Seu nome ou apelido
        .Sender = "Teste"
        'Nome da sua organização
        .Organization = "Empresa Teste"
        'email de responder para
        .ReplyTo = "marcos.rieper@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
        SendEmailGmail = .Send
    End With

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

Public Sub lsEnviarEmails()
    Dim iTotalLinhas, i As Integer

    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1

    i = 2
    While i < iTotalLinhas
        lsEnviaEmail Range("B" & i).Value, "Mensagem para o cliente " & Range("A" & i).Value
        i = i + 1
    Wend
End Sub

Abraço

Marcos Rieper

Material gratuito

Planilha de Controle Financeiro no Excel

Tenha um controle bonito e completo do seu financeiro.

  • Categorias e subcategorias já configuradas
  • Planilhas separadas por tabela (configuração, lançamentos, resumo)
  • Personalize com suas próprias categorias e ícones

Baixe grátis — receba o link no seu e-mail

Download — baixe aqui: Enviar e-mail com o Excel
Enviar e-mail com o Excel19 KB · Excel 2010 ou superior · com macrosPreencha seus dados para receber o link de download no seu e-mail.

Este conteúdo foi útil?

Continue lendo