• 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.

Email doorsturen vanuit formulier.

Status
Niet open voor verdere reacties.

frankie59

Gebruiker
Lid geworden
25 sep 2008
Berichten
154
Goedemiddag,

Ik heb een accessprogramma gemaakt waarin ik de klanten een mail wil sturen.
Dit gebeurt met de volgende code:
Code:
'-------------------------
Me.herinnering2 = Date
Me.MailID = "H1-" & "H2-"


'---------------------------------
  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/sendusing") = 2
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.kpnmail.nl"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
           
            .Update
        End With

     
    strbody = "Beste heer/mevrouw, " & Me.Naam & vbNewLine & vbNewLine & _
              "Enige tijd geleden hebben wij uw computer of laptop voorzien van het ICT-Keurmerk." & vbNewLine & _
              "Op " & Me.herinnering1 & " stuurden wij u een mail om u erop attent te maken dat uw ICT-Keurmerk binnenkort gaat verlopen." & vbNewLine & _
              "Uw ICT-Keurmerk is verlopen op:" & Me.Vervaldatum & "." & vbNewLine & _
              "U kunt uw computer of laptop nu niet meer periodiek schoonmaken en bent u minder veilig bij internetbankieren." & vbNewLine & _
              "Uw computer of laptop wordt nu ook intern niet gereinigd, op den duur zal uw computer of laptop dicht gaan zitten van het stof." & vbNewLine & _
              "De werktemperatuur zal oplopen wat ten koste gaat van de levensduur van uw computer of laptop." & vbNewLine & _
              "Indien u uw ICT-Keurmerk weer wilt verlengen, is 1 telefoontje genoeg (0411-616591)." & vbNewLine & _
              "U kunt dan een afspraak maken dat wij uw computer of laptop on-line softwarematig schoonmaken of u kunt uw computer of laptop naar de winkel brengen." & vbNewLine & _
              "Als u uw computer of laptop naar de winkel brengt, is deze na 1 werkdag weer klaar." & vbNewLine & _
              "Na de controle krijgt u het ICT-Keurmerk certificaat en kunt u weer veilig internetten en telebankieren." & vbNewLine & _
              "De kosten voor het ICT-Keurmerk, reiniging, controle en optimalisatie bedragen 30 Euro." & vbNewLine & vbNewLine & vbNewLine & _
              "Met vriendelijke groet," & vbNewLine & _
              "V-LITE Computer & Fotoservice." & vbNewLine & vbNewLine & _
              "Dé computerwinkel van Boxtel."

    With iMsg
        Set .Configuration = iConf
        .To = Me.[Email]
        .CC = ""
        .BCC = ""
        .From = """V-LITE Computer Service"" <info@v-lite.nl>"
        .Subject = "Verlenging van uw ICT-Keurmerk"
        .TextBody = strbody
        .Send
    End With

MsgBox "Relatie ontvangt nu mail betreffende verlenging ICT-Keurmerk"

'If Me.Dirty Then    'Save any edits.
     
   '  Me.Dirty = False
    'End If

   ' If Me.NewRecord Then 'Check there is a record to print
        'MsgBox "Select a record to print"
   'Else
       ' strWhere = "[id] = " & Me.Id
       ' DoCmd.OpenReport "verlopen_ict-keurmerk", , , strWhere


'End If

End Sub
'----------------------------------------------

Dit werkte perfect.
Alleen na 100 mailtjes gooit de KPN mij op de blacklist.
En kan ik niets meer versturen met poort 25.

Hoe zou ik dit op kunnen lossen, zodat ik mails via mijn provider (Cloud86)kan versturen.
Ik moet dan gebruikersnaam , wachtwoord, server en poort kwijt kunnen.

Heeft er iemand een oplossing.

Alvast bedankt.

Frank Schuurmans.
 
Laatst bewerkt door een moderator:
Die kan je gewoon in CDO opgeven.
Bijvoorbeeld:
Code:
    Set Flds = iConf.Fields
    Schema = "http://schemas.microsoft.com/cdo/configuration/"
    With Flds
        .Item(Schema & "sendusing") = Sheets("MailInfo").Range("SENDUSING")
        .Item(Schema & "smtpusessl") = Sheets("MailInfo").Range("USESSL")
        .Item(Schema & "smtpauthenticate") = Sheets("MailInfo").Range("AUTHENTICATE")
        .Item(Schema & "smtpserver") = Sheets("MailInfo").Range("SERVER")
        .Item(Schema & "sendusername") = Sheets("MailInfo").Range("USERNAME")
        .Item(Schema & "sendpassword") = Sheets("MailInfo").Range("PASSWORD")
        .Item(Schema & "smtpserverport") = Sheets("MailInfo").Range("PORT")
        .Update
    End With
 
Via SMTP versturen is altijd het beste!
 
Dan heb je wel een SMTP object nodig om in VBA te gebruiken.
 
Hallo Edmoor,

Ik heb de code van jou gebruikt, maar ik denk dat ik iets fout doe (ben niet zo'n held in vba.)
foutcode: compileerfout sub of function niet gedefinieerd.

Code:
 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")

  Set Flds = iConf.Fields
    Schema = "http://schemas.microsoft.com/cdo/configuration/"
    With Flds
        .Item(Schema & "sendusing") = Sheets("MailInfo").Range("SENDUSING")
        .Item(Schema & "smtpusessl") = Sheets("MailInfo").Range("USESSL")
        .Item(Schema & "smtpauthenticate") = Sheets("MailInfo").Range("AUTHENTICATE")
        .Item(Schema & "smtpserver") = Sheets("MailInfo").Range("v-lite.nl")
        .Item(Schema & "sendusername") = Sheets("MailInfo").Range("gebruikersnaam")
        .Item(Schema & "sendpassword") = Sheets("MailInfo").Range("wachtwoord")
        .Item(Schema & "smtpserverport") = Sheets("MailInfo").Range("465")
        .Update
    End With
     
    strbody = "Beste heer/mevrouw, " & Me.Naam & vbNewLine & vbNewLine & _
              "6 maanden geleden hebben wij uw computer of laptop voorzien van het ICT-Keurmerk." & vbNewLine & _
              "Uw computer of laptop is toen softwarematig schoongemaakt en voorzien van speciale software om uw systeem zelf periodiek schoon te maken." & vbNewLine & _
              "De geldigheidsduur van het ICT-Keurmerk is 6 maanden. Uw ICT-Keurmerk vervalt op:" & Me.Vervaldatum & "." & vbNewLine & _
              "Na deze periode dient het computersysteem weer grondig softwarematig opgeschoond te worden." & vbNewLine & _
              "Ook de hardware dient nagekeken en intern gereinigd te worden." & vbNewLine & _
              "Hierdoor blijft de werktemperatuur optimaal en gaat uw computer of laptop langer mee." & vbNewLine & _
              "Uw beveiliging wordt nagekeken en uw computer of laptop geoptimaliseerd." & vbNewLine & _
              "Na deze controle en update is uw computer of laptop weer veilig en voldoet deze weer aan de eisen van de Vereniging van Banken." & vbNewLine & _
              "Bij verlenging ontvangt u weer een nieuw ICT-Keurmerk certificaat. Hiermee bewijst u dat u er alles aan gedaan heeft om veilig te Internetbankieren" & vbNewLine & _
              "Met dit certificaat staat u sterk in geval van fraude en kunt u bewijzen veilig gewerkt te hebben." & vbNewLine & _
              "U hoeft geen afspraak te maken en kunt uw computer of laptop in onze winkel afgeven." & vbNewLine & _
              "Na 1 dag kan uw computer of laptop weer opgehaald worden." & vbNewLine & _
              "Het is ook mogelijk om het ICT-Keurmerk on-line te verlengen. U hoeft uw computer of laptop dan niet naar de winkel te brengen." & vbNewLine & _
              "De kosten voor het ICT-Keurmerk, reiniging, controle en optimalisatie bedragen 30 Euro." & vbNewLine & vbNewLine & vbNewLine & _
              "Met vriendelijke groet, " & vbNewLine & _
              "V-LITE Computer & Fotoservice." & vbNewLine & vbNewLine & _
              "Dé computerwinkel van Boxtel."

    With iMsg
        Set .Configuration = iConf
        .To = Me.[Email]
        .CC = ""
        .BCC = ""
        .From = """V-LITE Computer Service"" <info@v-lite.nl>"
        .Subject = "Uw ICT-Keurmerk gaat binnenkort verlopen."
        .TextBody = strbody
        .Send
    End With

MsgBox "Relatie ontvangt nu mail betreffende verlenging ICT-Keurmerk"

'If Me.Dirty Then    'Save any edits.
     
   '  Me.Dirty = False
    'End If

   ' If Me.NewRecord Then 'Check there is a record to print
        'MsgBox "Select a record to print"
   'Else
       ' strWhere = "[id] = " & Me.Id
       ' DoCmd.OpenReport "verlopen_ict-keurmerk", , , strWhere

'End If

End Sub


mod. Graag VBA tussen
Code:
 en
zetten. Dit kan met het # knopje.
 
Laatst bewerkt door een moderator:
Zet je code hier in code tags, zo is het geen lezen.
Plaats tevens je document, want je hebt de variabelen in mijn voorbeeld gebruikt en die heb je vast niet.
 
Hallo Edmoor,

Wil je me helpen, ik zou niet weten waar ik wat moet zetten.
Ik heb geen document, ik heb alleen platte tekst wat in een mail moet komen.

Bericht:
Code:
 strbody = "Beste heer/mevrouw, " & Me.Naam & vbNewLine & vbNewLine & _
              "6 maanden geleden hebben wij uw computer of laptop voorzien van het ICT-Keurmerk." & vbNewLine & _
              "Uw computer of laptop is toen softwarematig schoongemaakt en voorzien van speciale software om uw systeem zelf periodiek schoon te maken." & vbNewLine & _
              "De geldigheidsduur van het ICT-Keurmerk is 6 maanden. Uw ICT-Keurmerk vervalt op:" & Me.Vervaldatum & "." & vbNewLine & _
              "Na deze periode dient het computersysteem weer grondig softwarematig opgeschoond te worden." & vbNewLine & _
              "Ook de hardware dient nagekeken en intern gereinigd te worden." & vbNewLine & _
              "Hierdoor blijft de werktemperatuur optimaal en gaat uw computer of laptop langer mee." & vbNewLine & _
              "Uw beveiliging wordt nagekeken en uw computer of laptop geoptimaliseerd." & vbNewLine & _
              "Na deze controle en update is uw computer of laptop weer veilig en voldoet deze weer aan de eisen van de Vereniging van Banken." & vbNewLine & _
              "Bij verlenging ontvangt u weer een nieuw ICT-Keurmerk certificaat. Hiermee bewijst u dat u er alles aan gedaan heeft om veilig te Internetbankieren" & vbNewLine & _
              "Met dit certificaat staat u sterk in geval van fraude en kunt u bewijzen veilig gewerkt te hebben." & vbNewLine & _
              "U hoeft geen afspraak te maken en kunt uw computer of laptop in onze winkel afgeven." & vbNewLine & _
              "Na 1 dag kan uw computer of laptop weer opgehaald worden." & vbNewLine & _
              "Het is ook mogelijk om het ICT-Keurmerk on-line te verlengen. U hoeft uw computer of laptop dan niet naar de winkel te brengen." & vbNewLine & _
              "De kosten voor het ICT-Keurmerk, reiniging, controle en optimalisatie bedragen 30 Euro." & vbNewLine & vbNewLine & vbNewLine & _
              "Met vriendelijke groet, " & vbNewLine & _
              "V-LITE Computer & Fotoservice." & vbNewLine & vbNewLine & _
              "Dé computerwinkel van Boxtel."
 
Je hebt geen document?
Waarom heb je het dan in de Excel sectie gezet?

Het gaat hierom.
Vul de juiste waarden van je SMTP server in:
Code:
    Set Flds = iConf.Fields
    Schema = "http://schemas.microsoft.com/cdo/configuration/"
    With Flds
        .Item(Schema & "sendusing") = 2
        .Item(Schema & "smtpusessl") = 1
        .Item(Schema & "smtpauthenticate") = 1
        .Item(Schema & "smtpserver") = "Je SMTP server"
        .Item(Schema & "sendusername") = "Gebruikersnaam"
        .Item(Schema & "sendpassword") = "Wachtwoord"
        .Item(Schema & "smtpserverport") = poortnummer
        .Update
    End With
 
Laatst bewerkt:
Dank je Edmoor.

Ik heb het ingevoerd en het werkt perfect.

Fijne avond.

MVG Frank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan