E-mail in access naar meerdere klanten sturen

Status
Niet open voor verdere reacties.

dirkdrent

Gebruiker
Lid geworden
3 jan 2006
Berichten
382
Ik heb in access een klantenbestand. Nu wil ik graag een mailing in 1 keer naar alle klanten (uiteraard die in het bezit zijn van een e-mail adres) toe mailen. Ik heb in de tabel adres gegevens een kolom e-mail adres. Nu heb ik een formulier gemaakt m.b.t. het invoeren van nieuwe klanten en voor het bekijken van de gegevens van de al reeds eerder ingevoerde klanten gegevens.

Op het formulier heb ik bij het invul vak voor het e-mail adres een knopje aangemaakt zodat wanneer je hierop klikt, outlook wordt geopent met een nieuwbericht waarbij direct het e-mail adres van de klant in de adresbalk van outlook komt te staan.

Waar ik zelf aan zat te denken en wat tot opheden nog niet is gelukt om een nieuwe query te maken met hierin alle e-mailadressen in 1 veld weergegeven. Dit zou dan als volgt in het veld moeten worden weergegeven (met het veldeigenschap ingesteld op memo)test1@abcce.nl;test2@afaf.nl;test3@hoho.com enz.

Als het lukt om bovenstaande gegevens in 1 veld te krijgen, een nieuwe knop aan te maken die outlook opent in de gegevens in bovenstaand veld overneemt en dat je dan op deze manier de mailing kunt versturen naar alle klanten uit de database.

Wie kan en wil mij hiermee helpen??? Bedankt alvast
 
De knop zal waarschijnlijk een stukje VBA achter zich hebben. Als je daarin m.b.v. een recordset de e-mail adressen achter elkaar in een string zet kun je dat gebruiken om naar outlook te sturen.


Grtz,
 
code achte de knop

Function fEmail_link(strEmail_adres As String)


If Len(strEmail_adres) > 5 Then
If InStr(2, strEmail_adres, "@") Then
strEmail_adres = "mailto:" & strEmail_adres
FollowHyperlink (strEmail_adres)
Else
MsgBox strEmail_adres & " is geen geldig e-mail adres"
End If
Else
MsgBox "U hebt geen e-mail adres ingevoerd", vbExclamation, "Geen e-mail adres"
End If

End Function
 
dit is de code achter de knop... waar moet ik in deze code alle e-mailadressen weergegeven. Excuses was vergeten om deze motivatie toe te voegen
 
Je gaat er hier vanuit dat de standaard ingestelde mailclient op de PC waar de applicatie vanaf draait wordt gebruikt. Ik weet niet of een mailto link meerdere e-mail adressen tegelijk aan kan.

Een mooiere oplossing zou zijn om m.b.v. een smtp server direct het mailtje te versturen of om m.b.v. de outlook api het mailtje op te bouwen en te versturen.

Voorbeeldje outlook api:
Code:
Public Sub SendEmail(strTo As String, strSubject As String, strBody As String, blnSend As Boolean, Optional strAttachement As String)
    'Procedure om e-mail te kunnen versturen via Outlook.

On Error GoTo Err_SendEmail

    Set objoutlook = CreateObject("Outlook.Application")
    Set objemail = objoutlook.CreateItem(olMailItem)
    
    With objemail
        .To = strTo
        .ReadReceiptRequested = False
        .Subject = strSubject
        .body = strBody
        If Len(strAttachement) > 0 Then
            Set objOutlookAttach = .Attachments.Add(strAttachement)
        End If
        If blnSend = True Then
            .Send
        Else
            .Save
        End If
    End With
    
    Set objemail = Nothing
    Set objoutlook = Nothing

Exit_SendEmail:
    Exit Sub

Err_SendEmail:
    MsgBox "Fout: " & Err.Description, vbCritical + vbOKOnly, "Error: " & Err.Number
    Resume Exit_SendEmail

End Sub

Bovenstaande code accepteert een aantal parameters. JE kunt hem aanroepen met bijv: SendEmail("a@a.nl, b@b.nl", "Subject", "bodytekst", True)
Zorg wel dat je de referentie naar de outlook api hebt aangevinkt in Tools --> references

Voorbeeldje met smtp:
Code:
Public Function SendEmail(strEmailAdres As String, strBody As String)
    Dim objMail As Object
    'Dim strBody As String
    
    'mail opmaken en versturen
    Set objMail = CreateObject("SMTPControl.SMTP")

    With objMail
        .Server = "smtp.provider.nl"
        .MailFrom = "adres@provider.nl"
        .Username = ""
        .Password = ""
        .SendTo = strEmailAdres
        .CC = ""
        .BCC = ""
        .MessageSubject = "Testsubject"
        .MessageText = strBody
        .MessageHTML = ""
        .SendEmail
    End With

End Function

Voor deze code heb je een mail componentje nodig. Zie bijgevoegde attachement. Ook hier moet je d referentie leggen via Tols --> References


Grtz,
 

Bijlagen

  • SMTP.zip
    25,2 KB · Weergaven: 84
Ik ga dit proberen... alvast bedankt en ik laat het resultaat nog wel even weten
 
De referentie heet "Microsoft Outlook x.x Object Library" Waarbij x.x de versie is die je op die PC hebt staan.


Grtz,
 
ik heb ook een vraag in deze richting, misschien kan iemand mij ook verder helpen?
in een database heb ik een veld met gsmnrs. hieraan heb ik in vba een code die via "smsmaker.com" bij dubbelklikken een sms verstuurd.
ook heb ikvia een query een lijst met personen (gefilterd op bepaalde datums) die ik graag in een beweging een sms wil sturen. Hoe kan ik dit met een knop verwezelijken ?

de code die ik nu in het formulier gebruik is:
Private Sub GSM_DblClick(Cancel As Integer)
Dim sLink As String
sLink = "Mailto:" & Me.GSM & "@smsmaker.com"
Application.FollowHyperlink sLink
End Sub
 
Zoals je vast hebt gezien, is dit draadje ruim 7 jaar oud. Bovendien stel je een andere vraag. Kortom: dat druist een beetje tegen de etiquette in. Maak een nieuwe vraag aan, en laat deze rusten (verdient-ie wel na die tijd).
 
Dit topic is gedateert, m.a.w. het is ouder dan drie maanden en mag dus met rust gelaten mag worden. Topic gaat op slot en wordt overgedragen aan de afdeling BNw(Betere Naslagwerken)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan