VBA enviar e-mails do Excel por meio do Gmail

Este tutorial mostrará como enviar e-mails do Excel por meio do Gmail usando o VBA.

Adicionando a Referência do Microsoft CDO

Para permitir que o Excel envie e-mail através do Gmail, você primeiro precisa adicionar a biblioteca de referência do CDO ao seu projeto do Excel.

No Editor VBA, clique em Ferramentas, Referências.

Procure a Referência do CDO da Microsoft e clique em OK.

Enviando um e-mail via GMail

Para enviar um e-mail do Excel via Gmail, você primeiro precisa declarar um objeto CDO (Dim gMail como CDO.Message).

Em segundo lugar, você precisaria configurar a autenticação SSL para sua mensagem em seu código. Isso significa que você precisa configurar o servidor SMTP e os detalhes da porta para que seu e-mail seja enviado corretamente, bem como configurar seu nome de usuário e senha.

No trecho de código abaixo, isso é o que você precisa no início de sua função do Excel. Você precisa de um Destinatário do e-mail (strTo) e um Assunto (strSubject), mas o CC e o corpo do e-mail podem ser variáveis ​​opcionais.

12345678910111213141516171819202122232425262728 Função CreateEmail (strTo As String, strSubject As String, Opcional strCC As String, Opcional strBody As String)'criar um objeto CDODim gMail As CDO.MessageDefinir gMail = Novo CDO.Message'Habilitar autenticação SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Verdadeiro'Tornar a autenticação SMTP habilitada = verdadeiro (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Defina o servidor SMTP e os detalhes da portagMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Defina seu nome de usuário e senha para sua conta do gmail aquigMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Atualizar os campos de configuraçãogMail.Configuration.Fields.Update

Feito isso, você pode criar seu e-mail e concluir a função.

123456789 'definir as propriedades de e-mail e o arquivo a enviarCom gMail .Subject = "Escreva o assunto aqui".From = "[email protected]".To = strTo.TextBody = strBodyTerminar com'para enviar o e-mailgMail.SendFunção Final

Você pode então chamar sua função com o seguinte código

1234567 Sub SendEmail'cria o corpo do e-mailDim strText como stringstrText = "Bom dia. Espero que você esteja bem - este é um e-mail de teste"'preencher os argumentos da função - deixe CC em branco, então coloque uma vírgula como espaço reservadoCreateEmail ("[email protected]", "Test Email",, strText)End sub

Enviando uma pasta de trabalho via GMail

Para enviar uma pasta de trabalho como um anexo via GMail, você pode criar uma função muito parecida com a acima, com alguns acréscimos.

Você precisa adicionar o código para selecionar a pasta de trabalho e, em seguida, anexar o arquivo selecionado ao e-mail.

Usaremos o Microsoft Office FileDialog comando para selecionar o arquivo a ser enviado e, em seguida, use o Juntar anexo propriedade do e-mail para adicionar o arquivo como um anexo.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Função SendWorkbook (strTo As String, strSubject As String, Opcional strCC As String, Opcional strBody As String) As BooleanEm caso de erro, vá para eh:'criar um objeto CDODim gMail As CDO.MessageDefinir gMail = Novo CDO.Message'Habilitar autenticação SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Verdadeiro'Tornar a autenticação SMTP habilitada = verdadeiro (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Defina o servidor SMTP e os detalhes da portagMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Defina seu nome de usuário e senha para sua conta do gmail aquigMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Atualizar os campos de configuraçãogMail.Configuration.Fields.Update'selecione o arquivo a ser enviado com a caixa de diálogo do arquivo microsoftDim strFileToSend As StringDim dlgFile As FileDialogDim strItem As VariantDim nDlgResult As LongDefina dlgFile = Application.FileDialog (msoFileDialogFilePicker)'filtro apenas para arquivos excel e csvdlgFile.Filters.Add "Arquivos Excel", "* .csv; * .xls; * .xlsx; * .xlsm"nDlgResult = dlgFile.ShowSe nDlgResult = -1, entãoSe dlgFile.SelectedItems.Count> 0 EntãoPara cada strItem em dlgFile.SelectedItemsstrFileToSend = strItemPróximo strItemFim seFim se'definir as propriedades de e-mail e o arquivo a enviarCom gMail.Subject = "Escreva o assunto aqui".From = "[email protected]".To = strTo.TextBody = strBody'adiciona o arquivo selecionado como um anexo.AddAttachment strFileToSendTerminar com'para enviar o e-mailgMail.SendSendWorkbook = TrueFunção de saídaEh:SendWorkbook = FalseFunção Final

Se a porta de configuração 25 não funcionar, você pode obter um erro - “O transporte falhou ao conectar ao servidor” Mude a porta para 25 e tente novamente.

A função acima pode ser chamada usando o procedimento abaixo.

123456789101112131415 Sub SendMail ()Dim strTo As StringDim strSubject As StringDim strBody As String'preencher variáveisstrTo = "[email protected]"strSubject = "Encontre o arquivo financeiro em anexo"strBody = "algum texto vai aqui para o corpo do e-mail"'chame a função para enviar o e-mailSe SendWorkbook (strTo, strSubject,, strBody) = true entãoMsgbox "Criação de e-mail com sucesso"OutroMsgbox "Falha na criação do e-mail!"Fim seEnd Sub

Você será solicitado a selecionar o arquivo que deseja enviar. Este código é restrito a arquivos Excel devido ao filtro ser “* .csv; * .xls; * .xlsx; * .xlsm ”- no entanto, você também pode usar esse código no Word e alterar seu filtro de acordo.

Selecione o arquivo e clique em Abrir. O código pode demorar para ser executado - se seu e-mail for enviado com sucesso, você receberá a seguinte mensagem.

wave wave wave wave wave