IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

email de masse


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 134
    Points : 52
    Points
    52
    Par défaut email de masse
    Bonjour, j'utilise access pour contacter par mail les professionnels membres de notre association. La sélection des pros à mailer se fait à travers un formulaire contenant une 'zone de liste' (Lst_Pro), dont la source est requêtée sur la table T_Professionnel.
    Voici le code que j'utilise (il n'est pas de moi, et j'en comprends la moitié) pour le mailing :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    Private Sub btn_envoyer_Click()
    Dim varitem As Variant
    Dim nbselection As Long
     
    On Error Resume Next
     
    DoCmd.SetWarnings False
        DoCmd.RunSQL "Delete * from t_temp_etiquettes_pros"
        DoCmd.SetWarnings True
        Rem declaration des variables
        Dim db As DAO.Database
        Dim rcd As DAO.Recordset
        Dim rcd_temp As DAO.Recordset
        Rem Initialisation des variables
        Set db = CurrentDb
        Set rcd = db.OpenRecordset("Select * from T_Professionnel")
        Set rcd_temp = db.OpenRecordset("Select * from t_temp_etiquettes_pros")
     
        While Not rcd.EOF
           rcd_temp.AddNew
           'temp/T-Pro
           rcd_temp(0) = rcd(0)
           rcd_temp(1) = rcd(5)
           rcd_temp(2) = rcd(4)
           rcd_temp(3) = rcd(7)
           rcd_temp(4) = rcd(6)
           rcd_temp(5) = rcd(8)
           rcd_temp(6) = rcd(9)
           rcd_temp(7) = rcd(12)
           rcd_temp.Update
           rcd.MoveNext
        Wend
     
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE t_temp_etiquettes_pros SET selectionne=0"
    DoCmd.SetWarnings True
     
    For Each varitem In Me.Lst_Pro.ItemsSelected
        DoCmd.SetWarnings False
        DoCmd.RunSQL "UPDATE t_temp_etiquettes_pros SET selectionne=-1 WHERE NumeroProfessionnel=" & Me.Lst_Pro.ItemData(varitem)
        DoCmd.SetWarnings False
        nbselection = nbselection + 1
    Next varitem
     
    EnvoyerEmailEtFichiersListe
     
    End Sub
     
     
    Private Sub EnvoyerEmailEtFichiersListe()
     
    Dim olApp As Outlook.Application
    Dim miEmail As Outlook.MailItem
    Dim rcCCI As Outlook.Recipient
    Dim db As DAO.Database
    Dim rct_cci As DAO.Recordset
    Dim nb_cci As Long
    Dim str_cci As String
    Dim i As Long
     
    Rem Initialiser un objet Outlook
    Set olApp = CreateObject("Outlook.Application")
     
    Rem Initialise un objet base de données
    Set db = CurrentDb
     
    Rem Créer le message
    Set miEmail = olApp.CreateItem(olMailItem)
     
    Rem Initialise la liste des contacts de la requête
    Set rct_cci = db.OpenRecordset("Select EmailProfessionnel from t_temp_etiquettes_pros where EmailProfessionnel is not null and EmailProfessionnel<>'' and selectionne=-1")
     
    Rem Initialise le nombre de CCI
    While Not rct_cci.EOF
        nb_cci = nb_cci + 1
        rct_cci.MoveNext
    Wend
     
    Rem Si il y a au moins un CCI, alors repositionnement du recordset au début
    If nb_cci > 0 Then
        rct_cci.MoveFirst
    End If
     
    Rem Initialisation de la chaîne d'adresses Email CCI
    For i = 0 To nb_cci - 1
        If i > 0 And i < nb_cci Then
            str_cci = str_cci & ";"
        End If
        str_cci = str_cci & rct_cci("EmailProfessionnel")
        rct_cci.MoveNext
    Next i
     
    Rem Renseigner le message
    With miEmail
        Rem Définir le CCI, et le vérifier
        Set rcCCI = .Recipients.Add(str_cci)
        rcCCI.type = olTo
        Rem Afficher le message
        .Display
    End With
    Set miEmail = Nothing
    Set olApp = Nothing
     
    End Sub
    Voilà, donc pour la première partie on utilise une table temporaire t_temp_etiquettes_pros qui va recevoir les données qui nous intéressent (dont l'Email); pour les pros sélectionnés dans la 'zone de liste' on met le champ 'sélectionné' à 1. Puis en deuxième partie on envoie un mail à partir de t_temp_etiquettes_pros pour les enregistrements sélectionnés précédemment. Je ne suis qu'un débutant en vb, mais je trouve cette méthode lourde bien qu'elle permet d'envoyer des emails sans limitation du nombre de destinataires.

    Ce code marche bien, et je souhaite ajouter une fonction à ce système , qui consiste à rappeler aux pros dans ces mails leurs identifiants (login + pass) pour l'accès à notre site internet. Ces identifiants sont stockés dans T_Professionnel.
    Concernant la première partie du code, je peux sans difficultés insérer les 2 champs login et pass de T_Professionnel dans t_temp_etiquettes_pros pour une utilisation future, mais je ne sais pas comment, par la suite, insérer ces 2 champs dans le corps de texte d'un mail. Le but est bien évidemment que chaque pro puisse voir ses identifiants rappelés en bas de chaque mail que nous lui envoyons.
    Merci pour vos suggestions
    Pierre

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Jette un coup d'oeil ici

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 134
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Heureux-oli
    Jette un coup d'oeil ici
    merci pour le lien, et bravo pour ce site!

Discussions similaires

  1. Envoi d'email en masse tache cron
    Par CedriZero dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2014, 10h19
  2. Mon serveur est utilisé pour de l'emailing de masse
    Par stc074 dans le forum Sécurité
    Réponses: 2
    Dernier message: 07/10/2012, 14h09
  3. [Serveur mail] Emailing de masse pour plusieurs domaines
    Par osmoze dans le forum Administration système
    Réponses: 4
    Dernier message: 25/06/2008, 11h16
  4. emailing de masse
    Par Phiss dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 04/02/2008, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo