Vanuit exel werkboek versturen met gmail

Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
554
Hallo,
Onderstaande macro werkt perfect en is ook niet groot
maar je moet wel Outlook geinstalleerd hebben.
Kan iemand mij helpen als ik geen Outlook heb maar alleen Gmail.

Groetjes JaaP


Code:
Sub volledig_werkboek_sturen()
With CreateObject("Outlook.Application").createitem(0)
.to = "snb@forums.eu"
.Subject = "example"
.attachments.Add ThisWorkbook.FullName
.Send
End With
End Sub
 
Laatst bewerkt door een moderator:
Vanuit exel , werkboek versturen met G-mail

Ik kom er niet uit.
Kan je me verder helpen met een compleet uitgewerkte macro?

De bedoeling is een compleet werkboek als bijlage te versturen
De macro staat in dat werkboek en door op een knop te drukken
moet het nog openstaande maar al wel opgeslagen werkboek verstuurd worden
Ik heb geen outlook maar wel een gmail account
Alvast bedankt voor de geboden hulp

Groetjes Jaap
 
Dat lijkt me lastig; je gebruikt nl. webmail.
 
Vanuit exel , werkboek versturen met G-mail

Lastig , bedoel je onmogelijk!!

Groetjes Jaap
 

Bijlagen

  • Bereik mailen met CDOSys 3.xls
    42,5 KB · Weergaven: 94
Laatst bewerkt:
Vanuit-exel-werkboek-versturen met-gmail

Ik ben al wat verder gekomen.
Onderstaande code verstuurd het werkboek wel via mijn outlookserver maar niet met de server van gmail. (smtp.gmail.com)
Wat moet ik nog aanpassen zodat dit wel lukt??

Kunnen er ook nog delen weggelaten worden want hij is erg lang .
Zeker t.o.v. de eerder geplaatste macro.

Groetjes Jaap

Sub CDO_Mail_Workbook()

Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim iMsg As Object
Dim iConf As Object
Dim Flds As Variant

Set wb = ActiveWorkbook

With Application
.ScreenUpdating = False
.EnableEvents = False
End With


TempFilePath = Environ$("temp") & "\"
TempFileName = "Copy of " & wb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")
FileExtStr = "." & LCase(Right(wb.Name, Len(wb.Name) - InStrRev(wb.Name, ".", , 1)))

wb.SaveCopyAs TempFilePath & TempFileName & FileExtStr

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

iConf.Load -1
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

With iMsg
Set .Configuration = iConf
.To = "jaap_zonneveld@quicknet.nl"
.CC = ""
.BCC = ""
.From = """Jaap"" <jaap.zonneveld9@gmail.com>"
.Subject = "Test verzenden kasblad"
.TextBody = "Groetjes Jaap"
.AddAttachment TempFilePath & TempFileName & FileExtStr
.Send
End With

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
 
blijkbaar vond je het niet nodig om mijn code te testen en er een reactie op te geven
webmail werkt anders dan outlook, andere poorten, beveiligde/onbeveiligde aanmeldingen etc. ,wel of geen ontvangstbevestiging mogelijk etc.
nee, er staat niets overbodigs in (zie o.a. bijlage bericht#6)

desalnietemin

Code:
Sub CDO_Mail_Workbook()

Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim iMsg As Object
Dim iConf As Object
Dim Flds As Variant

Set wb = ActiveWorkbook

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

TempFilePath = Environ$("temp") & "\"
TempFileName = "Copy of " & wb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")
FileExtStr = "." & LCase(Right(wb.Name, Len(wb.Name) - InStrRev(wb.Name, ".", , 1)))

wb.SaveCopyAs TempFilePath & TempFileName & FileExtStr

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

iConf.Load -1
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = [COLOR="#FF0000"]465 'niet poort 25 maar poort 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 'toegevoegd versleutelde aanmelding
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 'toegevoegd timeout
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'toegevoegd aanmelden
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username" 'toegevoegd username
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 'toegevoegd password
[/COLOR].Update
End With

With iMsg
Set .Configuration = iConf
.To = "jaap_zonneveld@quicknet.nl"
.CC = ""
.BCC = ""
.From = """Jaap"" <jaap.zonneveld9@gmail.com>"
.Subject = "Test verzenden kasblad"
.TextBody = "Groetjes Jaap"
.AddAttachment TempFilePath & TempFileName & FileExtStr
.Send
End With

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
 
Laatst bewerkt:
Dat kan compacter:

Code:
Sub CDO_snb()
  thisworkbook.savecopyas Thisworkbook.path & "\kopie.xls"

  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)="username"
    .configuration(cdosendpassword)="password"
    .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
 
Vanuit-exel-werkboek-versturen met-gmail

Alphamax,

Dat was inderdaad de oplossing.
Code doet het nu , hij blijft echter lang.
Bedankt voor je oplossing.


Snb , ik heb jou code geprobeerd maar er komt de foutmelding:

"Een door gebruiker gegevenstype niet gedefinieerd"
Kan jij me verder helpen, want ik vind hem wel een stuk korter.

Hier de aangepaste code.

Sub CDO_snb()
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\kopie.xls"

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) = "jaap.zonneveld9@gmail.com"
.Configuration(cdosendpassword) = "jaap1940"
.Configuration.Fields.Update
.addattachment ThisWorkbook.Path & "\kopie.xls"
.To = "jaap_zonneveld@quicknet.nl"
.From = "jaap.zonneveld9@gmail.com"
.Subject = "laatste test 4"
.TextBody = "inhoud4"
.send
End With
End Sub


Groetjes Jaap
 
Zet svp die code eerst eens tussen codetags..

En je moet natuurlijk wel eerst de verwijzing naar de CDO bibliotheek leggen:

VBEditor/menubalk/extra/verwijzingen/ Microsoft CDO for Windows 2000 Library aanvinken
 
Laatst bewerkt:
Vanuit-exel-werkboek-versturen met-gmail

Verwijzing aangevinkt en de code werkt nu prima.
Ik ben er dankzij jullie hulp helemaal uit.
Ik vind dit een perfect werkend forum waar een grote kennis schuilt.
Nogmaals bedankt.

Groetjes Jaap
 
Toch nog wat vreemds!!
Als ik iets verander in het werkboek en het opnieuw verstuur dan verstuurd hij niet die met de wijziging
maar pakt volgens mij eerste opgeslagen versie uit Microsoft CDO for Windows 2000 Library.
Wat moet ik hieraan doen??

Ook vind ik de verzonden mails niet terug in mijn gmail.

Groetjes Jaap
 
Laatst bewerkt:
Ook vind ik de verzonden mails niet terug in mijn gmail.
met welke code heb je het bijlage probleem, beide lijken hetzelfde te doen, maar dat hoeft niet zo te zijn
 
Laatst bewerkt:
vervang
Code:
TempFilePath = Environ$("temp") & "\"
TempFileName = "Copy of " & wb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")
FileExtStr = "." & LCase(Right(wb.Name, Len(wb.Name) - InStrRev(wb.Name, ".", , 1)))
door
Code:
TempFilePath = Environ$("temp") & "\Copy of " & Split(wb.Name, ".")(0) & " " & Format(Now, "dd-mmm-yy h-mm-ss") & "." & Split(wb.Name, ".")(1)
ik het eerst jouw code niet gecontroleerd, maar die gaf fouten

vervang
Code:
.AddAttachment TempFilePath & TempFileName & FileExtStr
door
Code:
.AddAttachment TempFilePath

voeg na
Code:
.Send
End With
toe
Code:
Kill TempFilePath
verwijdert het bestand weer uit de tijdelijke map, wel zo netjes
 
Laatst bewerkt:
als ik de code uit bericht#8 aanpas volgens bericht#15
dan worden de bijlages tussentijds aangepast
en dan zie ik ook de verzonden berichten in gmail staan
getest met windowsvista32bit en excel2007nl32bit

de code van snb mag dan weliswaar korter zijn, deze stelt iets hogere eisen aan het systeem (zoals je gezien hebt moeten er bepaalde referenties ingesteld worden)
de code van mijn komt misschien uit de oude doos, maar eerst moet het werken, daarna kan je altijd nog optimaliseren
je moet eerst kunnen lopen voordat je kan rennen
 
Laatst bewerkt:
Code:
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\kopie.xls"

Bewaart altijd de laatste versie van het bestand. De verzending zendt dan ook altijd die laatste versie, tenzij je een fout in de code hebt aangebracht.


@alpha

Ook dit is oude doos:

ipv. FileExtStr = "." & LCase(Right(wb.Name, Len(wb.Name) - InStrRev(wb.Name, ".", , 1)))

Code:
msgbox createobject("scripting.filesystemobject").GetExtensionName(wb.name)[code]

Iets soortgelijks voor vroege en late koppeling.
 
Laatst bewerkt:
Vanuit-exel-werkboek-versturen met-gmail

Alpha & Snb ,

Sorry, jullie code verzend inderdaad WEL de laatste versie en werken prima
Ik had de wijzigingen aangebracht in het verzonden bestand i.p.v. het originele. (foutje , beetje gaar gedraaid denk ik. )

Sbn , ik zit nog wel met een probleem.
Als ik de verzonden Copy wil wissen uit de library , "Microsoft CDO for Windows 2000 Library
Hoe doe ik dat dan??
Ik zou de verzonden e-mails ook graag terug zien als verzonden in mijn g-mail.
Is dit ook nog te realiseren??

Groetjes Jaap
 
Code:
kill ThisWorkbook.Path & "\kopie.xls"
zie ook de help(F1) van vba

p.s. dit antwoord was al gegeven in bericht#15
 
Vanuit-exel-werkboek-versturen met-gmail

Na wat aan passingen zie ik ze nu ook in mijn verzonden berichten. (gmail)
Kil-regel ingevoerd , geen foutmelding , dus neem ik aan dat het bestand gewist word.
Hoe kan je dat uberhaubt controleren??

Groetjes Jaap
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan