Envoi de mail avec VB et MAPI

dany108 Messages postés 71 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 6 janvier 2011 - 10 févr. 2007 à 15:26
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 11 févr. 2007 à 15:27
Bonjour à tous,

j'essaie d'envoyer un mail en copie cachée à x personnes dont les adresses sont dans une base de données.
J'ai adapté le code ci-dessous pour faire des essais.
Ca marche !! mais c'est le dernier destinataire qui recoit tous les mails !!!!
(Pas de soucis avec la pièce jointe.)

Mon code : (adapté pour 2 destinataires)
'=========================================================
Dim NombrePersonne As Integer
Dim Adresse() As String
Dim Nom() As String
ReDim Adresse(2)
ReDim Nom(2)

NombrePersonne = 2
Adresse(0) = "toto@free.fr"
Nom(0) = "Monsieur Toto"
Adresse(1) = "titi@free.fr"
Nom(1) = "Monsieur Titi"

MAPISession.SignOn

With MAPIMessage
    .MsgIndex = -1
    .RecipType = mapBccList
    For i = 0 To NombrePersonne - 1
        .RecipIndex = i
        .RecipAddress = Adresse(i)
        .RecipDisplayName = Nom(i)
        .MsgSubject = "Essai de mail avec VB6"
        .MsgNoteText = "Ceci est le corps du message " & .RecipAddress
    Next

    .AttachmentPathName = "D:\Mes documents\Glace aux nougats Marthe.txt"
    .SessionID = MAPISession.SessionID
    .Send
End With

MAPISession.SignOff

MsgBox "Message envoyé !!"

Unload Me
'=========================================================

Voilà, si quelqu'un a une petite idée............................

Dany108[:D]

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 févr. 2007 à 14:49
salut,
beh oui tu fais le send après la boucle, normal que seul le dernier index soit concerné.

tout doit être "unique" avant le next

++
PCPT   [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
dany108 Messages postés 71 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 6 janvier 2011 1
11 févr. 2007 à 15:03
Salut,
merci d'avoir pris le temps de me lire.
Je ne suis pas tout à fait d'accord avec toi : si je met le send avant le next je vais envoyer autant de mail que de destinataires. Moi ce que je veux c'est envoyer un mail avec x destinataires en copie cachée.

Dany108[:D]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 févr. 2007 à 15:27
oups oui exact.
je ne touche pas à MAPI (il faut outlook d'installé et de configuré chez l'utilisateur donc pas universel....)
quelle est la propriété du cc?
à supposer RecipAddress (j'en doute), dans ta boucle çà donnerait :
.RecipAddress = .RecipAddress & Adresse(i) & ", "

après le next tu enlèves le dernier ", " :
.RecipAddress=leftb$(.RecipAddress,lenb(.RecipAddress)-4)

nb : il est possible que tu aies à initialiser .RecipAddress avant le for (="")

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Rejoignez-nous