• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

verzenden met Gmail

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.434
Ik wil gebruik maken met onderstaande macro van ron de Bruim voor het verzenden van een Excel bestand via VBA
Ik blijf echter maar tegen het feit aanlopen dat de macro blijft steken op .send
heb het ook vanaf een andere locatie geprobeerd en ook met andere varianten (al dan niet van Ron)

Wat kan er fout gaan?

Code:
Sub CDO_Mail_Small_Text_2()
    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant

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

    iConf.Load -1    ' CDO Source Defaults
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxxx@gmail.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxxx"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
        .Update
    End With

    strbody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2" & vbNewLine & _
              "This is line 3" & vbNewLine & _
              "This is line 4"

    With iMsg
        Set .Configuration = iConf
        .To = "xxxxxx@gmail.com"
        .CC = ""
        .BCC = ""
        ' Note: The reply address is not working if you use this Gmail example
        ' It will use your Gmail address automatic. But you can add this line
        ' to change the reply address  .ReplyTo = "Reply@something.nl"
        .From = """reply"" <Reply@something.nl>"
        .Subject = "Test"
        .TextBody = strbody
        .Send
    End With

End Sub
 
Beste,

Ik gebruik ook gmail en meestal zijn de voorgestelde oplossingen altijd voor Outlook (office-familie).
 
Ik denk dat bedoeld wordt: staat er een exchange server /outlook op de computer en is die juist ingesteld?

De instellingen lijken juist, dus mogelijk zit het probleem bij de verzendende applicatie niet VBA
 
Nee, er word geen outlook/office gebruikt. daarom zou deze code ideaal zijn omdat je die dan ook niet nodig hebt.
Dit gaat via CDO en dan zou het via de smtp van Gmail gaan.
 
Welke versie van windows? want zover ik weet komt alles na server 2003 niet meer met CDO voorgeïnstalleerd. Is CDO goed geïnstalleerd ?

Ik neem aan dat het ergens herkend wordt omdat je CDO objecten aan kan maken, maar dat is voor ons moeilijk na te gaan
 
Ik gebruik exact dezelfde code (werkt perfect) en ik zie geen verschil. het enige dat ik eventueel kan bedenken is de serverport
test deze drie 25,587 of 995 wie weet? Het is een pure gok.
 
Bij mij werkt het ook perfect. Wel even dit wijzigen in je eigen mailadres met bijpassend wachtwoord:

Code:
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxxx@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxxx"

Greetz/Excelbat
 
Ik ga met dotchie mee. Het moet inderdaad poort 587 (TLS) zijn.
 
Helaas, welke code ik ook gebruik (al een stuk op 10 van internet geplukt) en welke poort
en op 2 verschillend computers op 2 verschillende locaties.

Altijd loopt het weer stuk op de .send regel.
 
Probeer je dit te doen vanaf een bedrijfsnetwerk? Ik weet dat veel netwerkbeheerders dit soort poorten op hun routers sluiten voor ongewenst dataverkeer. Bij ons is dan namelijk - helaas - ook zo...
Ik mag wel mailen naar "interne" adressen, maar dus niet "naar buiten".
 
Controleer de gebruikersnaam en het wachtwoord nog eens grondig.
 
Probeer je dit te doen vanaf een bedrijfsnetwerk? Ik weet dat veel netwerkbeheerders dit soort poorten op hun routers sluiten voor ongewenst dataverkeer. Bij ons is dan namelijk - helaas - ook zo...
Ik mag wel mailen naar "interne" adressen, maar dus niet "naar buiten".

I van de locaties is inderdaad een bedrijfs netwerk maar de andere locatie is thuis.
 
Nadat ik de CDO bibliotheek heb geladen gebruik ik dit met succes:

Code:
Sub M_snb()
  With New CDO.Message
    .Configuration(cdoSendUsingMethod) = 2
    .Configuration(cdoSMTPServer) = "smtp.gmail.com"
    .Configuration(cdoSMTPServerPort) = 465
    .Configuration(cdoSMTPUseSSL) = True
    .Configuration(cdoSMTPConnectionTimeout) = 60
    .Configuration(cdoSMTPAuthenticate) = 1
    .Configuration(cdoSendUserName) = "gebruiker"
    .Configuration(cdoSendPassword) = "ww"
    .Configuration.Fields.Update
'    .addattachment ThisWorkbook.Path & "\kopie.xls"
    .To = "suggestie@snb-vba.eu"
    .From = "suggestie@snb-vba.eu"
    .Subject = "laatste test 4"
    .TextBody = "inhoud4"
    .send
  End With
End Sub
 
Helaas, hetzelfde verhaal en CDO bibliotheek staat aan.
 
Je zou 'ns in een DOS box een tracert smtp.gmail.com uit kunnen voeren... Als ik dat hier op ons bedrijfsnetwerk doe, krijg ik allemaal time-outs. Daaraan zie ik al dat ik het niet kan gebruiken om bij het IP-adres 74.125.133.109 van Google te komen.
 
inderdaad allemaal time outs krijg ik ook hier op werk.
Vanavond dan eens thuis proberen want daar zou het natuurlijk wel moeten lukken.
 
Thuis krijg ik geen Time outs als ik ping naar tracert smtp.gmail.com .
Maar toch iedere VBA om mail te verzenden loopt stuk op de .send.
Poort 25-587 en 465 geprobeerd.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan