Como enviar e-mail pelo Excel VBA sem usar o Outlook?
Objetivo: Enviar email VBA a partir do Excel.
Procurando pela internet como enviar email pelo excel ou como enviar email pelo VBA, sem utilizar o outlook; achei um assunto interessante. Então, encontrei um código macro VBA no qual me baseei e realizei algumas alterações como a inclusão de anexos nos emails enviados pelo Excel. 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:
'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.
Marcos Rieper