locked
VBA para envio de email RRS feed

  • Pergunta

  • Olá!

    Estou tentando encontrar um código que faça o envio de email através de nosso "webmail corporativo" que é hosteado pelo gmail.

    Estou utilizando o código abaixo, que peguei de uma resposta do usuário "Benzadeus", porém sempre volta o erro:

    Erro em tempo de execução '-2147220973 (80040213)'

    Falha na conexão do transporte com o servidor.

    Peço por favor que alguém me indique o que pode ser feito... já tentei enviar pelo meu email normal do gmail e deu o mesmo erro...

    Sub EnviarEmailCDO()
        Dim oMensagem As Object
        Dim oConfiguração As Object
        Dim sCorpo As String
        Dim vFields As Variant
    
        Set oMensagem = CreateObject("CDO.Message")
        Set oConfiguração = CreateObject("CDO.Configuration")
    
            oConfiguração.Load -1 'Padrões CDO
            Set vFields = oConfiguração.Fields
            With vFields
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                
                'Se quiser enviar um e-mail pelo Windows Live:
                '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.live.com"
    
                'Se quiser enviar um e-mail pelo Yahoo, substiua a linha acima por:
                '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= " smtp.mail.yahoo.com"
    
                'Se quiser enviar um e-mail pelo GMail, substiua a linha acima por:
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                
                'Abaixo você preencherá o nome do usuário. Se o seu e-mail é @hotmail, @xbox, @live,
                '@msn ou outros serviços associados à Windows Live, é necessário que você preencha
                'o seu endereço completo no campo abaixo.
                'Se você usa GMail, você deve suprimir o @gmail.com e no campo abaixo deixar apenas
                'o nome do usuário.
                'Em relação ao Yahoo, não testei porque não possuo uma conta. No entanto, provavelmente
                'é necessário especificar o endereço de e-mail completo uma vez que o Yahoo possui variações
                'como @yahoo.com, @yahoo.com.br, @yahoo.co.uk, entre outros.
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "usuario.sobrenome"
                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxxxx"
                .Update
            End With
    
        sCorpo = "Olá mundo!" & vbNewLine & _
          vbNewLine & _
          "Esta é a linha 1." & vbNewLine & _
          "Esta é a linha 2." & vbNewLine & _
          "Esta é a linha 3." & vbNewLine & _
          "Esta é a linha 4." & vbNewLine
          
        With oMensagem
            Set .Configuration = oConfiguração
            .To = "luis.saicali@apsis.com.br" 'mude aqui para alterar o destinatário
            .CC = "" 'com cópia
            .BCC = "" 'com cópia oculta
            .From = """Benzadeus"" <benzadeus3@ambienteoffice.com.br>"
            .Subject = "Bozano"
            .TextBody = sCorpo
            .Send
        End With
    End Sub
    Abraços!

    sexta-feira, 28 de junho de 2013 20:14

Respostas

  • Boa noite!

    Estou acompanhando este tópico. Consigo enviar e-mail  no trabalho sem erro usando esta mesma configuração, adquerida no site: http://www.ambienteoffice.com.br

    mas em casa usando o meu notebook não vai da erro, e observando a instrução do Fabio Joaquim acrescentando esta linha;  .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true" 

    Deu certo,

    Ficando Assim

       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 '465 
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"

    Obrigado


    quinta-feira, 18 de julho de 2013 23:23

Todas as Respostas

  • Realmente, as configurações do GMail mudaram. Na época que escrevi o código, funcionava normalmente.

    Você terá que pesquisar um pouco para saber os novos valores de configuração.

    Tente: http://www.blueclaw-db.com/access_email_gmail.htm

    Ou: http://www.databison.com/index.php/3-nifty-ways-to-send-email-using-excel/


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 28 de junho de 2013 21:48
    Moderador
  • Olá amigo,

    Eu consegui colocando as seguintes configurações:

    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                
                'Se quiser enviar um e-mail pelo Windows Live:
                '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.live.com"

                'Se quiser enviar um e-mail pelo Yahoo, substiua a linha acima por:
                '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= " smtp.mail.yahoo.com"

                'Se quiser enviar um e-mail pelo GMail, substiua a linha acima por:
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
                
                'Abaixo você preencherá o nome do usuário. Se o seu e-mail é @hotmail, @xbox, @live,
                '@msn ou outros serviços associados à Windows Live, é necessário que você preencha
                'o seu endereço completo no campo abaixo.
                'Se você usa GMail, você deve suprimir o @gmail.com e no campo abaixo deixar apenas
                'o nome do usuário.
                'Em relação ao Yahoo, não testei porque não possuo uma conta. No entanto, provavelmente
                'é necessário especificar o endereço de e-mail completo uma vez que o Yahoo possui variações
                'como @yahoo.com, @yahoo.com.br, @yahoo.co.uk, entre outros.
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "nomedousuario"
                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha"
                .Update
            End With

    Espero ter ajudado!

    Um abraço,

    Fabio Joaquim

    Diretor/Instrutor - On Training - Treinamentos Corporativos

    quinta-feira, 18 de julho de 2013 18:11
  • Boa noite!

    Estou acompanhando este tópico. Consigo enviar e-mail  no trabalho sem erro usando esta mesma configuração, adquerida no site: http://www.ambienteoffice.com.br

    mas em casa usando o meu notebook não vai da erro, e observando a instrução do Fabio Joaquim acrescentando esta linha;  .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true" 

    Deu certo,

    Ficando Assim

       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 '465 
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"

    Obrigado


    quinta-feira, 18 de julho de 2013 23:23
  • ola boa noite, eu também estou encontrando o mesmo erro

    alguem já encontrou uma solução???

    e pode colaborar

    todas as soluções que encontrei na net não funcionou

    * trocar a porta 25 - 465 e outras

    * colocar  a instrução smtpusessl

    * colocar sendusername =  apenas login e tambem o gmail completo

    todas as soluções

    preciso de ajuda meu office é o 2007

    talvez seja a versão??

    desde ja agradeço

    testei com o gmail e hotmail mudando as respectivas configurações

    o erro é o mesmo: 

    Erro em tempo de execução '-2147220973 (80040213)'

    Falha na conexão do transporte com o servidor.

    quarta-feira, 15 de janeiro de 2014 21:30
  • Olá,

    Veja o link a seguir: http://www.rondebruin.nl/win/s1/cdo.htm

    Como o tópico foi aberto por outra pessoa e é antigo, vou bloqueá-lo. Se tiver mais alguma dúvida, abra um novo tópico.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 15 de janeiro de 2014 22:24
    Moderador