Jump to content
Sign in to follow this  
GamerOver

como enviar e-mail a partir do Excel?

Recommended Posts

Bom dia a todos, estou inciando em VBA, sei o basico ao ponto de entender como funciona os codigos, porem estou indo pra plataforma do outlook,. GOstaria de saber como faço uma macro no excel que tenha um padrão de corpo de e-mai e que envie em um determinado tempo..

 

Grato!

Share this post


Link to post
Share on other sites

Enviar e-mails com o Excel pode ser feito de diversas maneiras, utilizando Outlook, encaminhando para a sua página de e-mail, ou como dissemos, enviar diretamente pelo próprio programa, sem nenhum esforço adicional. Este último, claro, é o melhor, então será ele que vamos aprender.

Como você já deve ter imaginado, este processo será possível através de um código VBA. Então, vamos ao de sempre: Aperte Alt + F11 para entrarmos na janela de edição de VBA’s.

O primeiro passo é ir até “Ferramentas”, depois “Referências” e vamos correr a lista para baixo até encontrar “Microsoft CDO for Windows 2000 Library”. Marque e dê o OK.

Enviando e-mail diretamente pelo Excel

Agora vamos criar um módulo clicando com o botão direito em “VBAProject”, depois em “Inserir” e então “Módulo”. Nesta janela de módulo vamos colar o seguinte código

'Baseado no código disponibilizado em http://guiadoexcel.com.br/
Function EnviaEmail()
Dim iMsg, iConf, Flds

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

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") = "[email protected]"
'Configura a senha do email remetente
Flds.Item(schema & "sendpassword") = "senha do seu e-mail"
Flds.Item(schema & "smtpusessl") = 1
Flds.Update

With iMsg
   'Email do destinatário
   .To = "[email protected]"
   'Seu email
   .From = "[email protected]gmail.com"
   'Título do email
   .Subject = "Isto é um teste de Envio de e-mail"
   '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 = "Aprender Excel"
   'e-mail de responder para
   .ReplyTo = "[email protected]"
   'Anexo a ser enviado na mensagem. Retire a aspa da linha abaixo e coloque o endereço do arquivo
   .AddAttachment ("c:/fatura.txt")
   Set .Configuration = iConf
   .Send
End With

Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Function

Sub disparar()
   EnviaEmail
   MsgBox "O e-mail foi disparado com sucesso!", vbOKOnly, "e-mail enviado"
End Sub

Enviando e-mail diretamente pelo Excel

Após colar o código no seu Excel veja que diversas linhas ficarão verde, pois são linhas que o código ignorar. Ou seja, são linhas comentários, que lhe dizem para que server a linha imediatamente abaixo.

Por exemplo

'Configura o email do remetente
      Flds.Item(schema & "sendusername") = "[email protected]"

Ali onde está o meu e-mail (entre aspas) você irá colocar o seu e assim por diante.

Atente para o campo remetente, senha, destino, corpo do e-mail, etc.

Detalhe: As configurações de Smtp e porta de envio do e-mail DESTE POST estão de acordo com o GMAIL. Se você usa outro serviço irá ter de adaptar às necessidades do mesmo.

Se você colocou tudo certinho então seu envio já estará configurado e fará o disparo toda vez que você disparar o mesmo. Sugiro que você crie um botão e coloque o atalho para o disparo. Assim é só clicar no botão e fazer o disparo automaticamente. Se você não sabe como fazer isso, confira um passo a passo rapidinho clicando aqui.

Detalhe 2: Como dissemos, o código está otimizado para o Gmail, e o serviço de e-mail do Google tem uma camada extra de proteção. Na primeira vez que você tentar enviar um e-mail pelo Excel vai receber um e-mail com a seguinte mensagem:

 

Conteudo retirado do seguinte endereço:

https://www.aprenderexcel.com.br/2017/vba/enviando-e-mail-diretamente-pelo-excel

Porra já precisei disso a algum tempo atras, para um cliente. Que coisa chata!!!

  • Like 1

Share this post


Link to post
Share on other sites

Bom, esclareceu sim, creio que eu n fui especifico ao fazer o topico, pq tipo, essa parte eu ja consegui configurar, o problema que tenho é na hora de configurar o corpo o email, tipo, com o logo de empresa (um email padrão ja setado ao enviar). 

Grato

Em 16/02/2019 em 13:57, N1nGgG3N disse:

Espero ter esclarecido um pouco...

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.