[WB14] Envoi d'email multiple

Le
paratge
Bonjour,

J'ai bien lu l'aide, Email.destinataire[n] est un tableau pouvant
contenir jusqu'à 20 adresses, Email.NbDestinataires= n est le nombre de
destinataires. OK.

Mais comment on s'en sert ?

Depuis hier je cherche désespérément, car je n'ai que le premier
destinataire qui reçoit son message. les autres rien

J'ai donc fait :
pour nNb = 1 a 10
si {"MonChampEmail_"+nNb}<>"" ALORS
Email.destinataire[nNb]={"MonChampEmail_"+nNb}
Email.NbDastinataire = nNb

POUR i = 1 A nNb
EmailenvoieMessage(,,,,)
FIN

Mais mon client trouve que c'est trop lourd pour son serveur et veut un
seul envoi multiple et là, je nage
L'aidse est très laconique voire brouillardeuse sur ce sujet.

Merci pour votre aide et votre temps.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yannick
Le #20483701
paratge a écrit :
Bonjour,

J'ai bien lu l'aide, Email.destinataire[n] est un tableau pouvant contenir
jusqu'à 20 adresses, Email.NbDestinataires= n est le nombre de destinataires.
OK.

Mais comment on s'en sert ?

Depuis hier je cherche désespérément, car je n'ai que le premier destinataire
qui reçoit son message. les autres rien...

J'ai donc fait :
pour nNb = 1 a 10
si {"MonChampEmail_"+nNb}<>"" ALORS
Email.destinataire[nNb]={"MonChampEmail_"+nNb}
Email.NbDastinataire = nNb

POUR i = 1 A nNb
EmailenvoieMessage(...,...,...,...,...)
FIN

Mais mon client trouve que c'est trop lourd pour son serveur et veut un seul
envoi multiple et là, je nage...
L'aidse est très laconique voire brouillardeuse sur ce sujet.

Merci pour votre aide et votre temps.



tu peux envoyer à un seul destinataire, ce destinataire étant une liste
d'adresse mail, séparée par ";" (nb : ça focntionne au moins avec
outlook)
Firetox
Le #20483981
Bonjour,


Depuis hier je cherche désespérément, car je n'ai que le premier
destinataire qui reçoit son message. les autres rien...

J'ai donc fait :
pour nNb = 1 a 10
si {"MonChampEmail_"+nNb}<>"" ALORS
Email.destinataire[nNb]={"MonChampEmail_"+nNb}
Email.NbDastinataire = nNb



le email.nbDestinataire doit etre avant le chargement des adressses
SI EmailOuvreSession(USER, PASSWORD, "pop3.toto.fr", "smtp.toto.fr") = Vrai
ALORS
NomUser = USER
SINON

email.NbDastinataire = 10
pour nNb = 1 a 10
Email.destinataire[nNb]={"MonChampEmail_"+nNb}
fin
email.envoiMessage(NomUser)


Merci pour votre aide et votre temps.



@+
Roumégou Eric
Le #20484221
Dans son message précédent, paratge a écrit :
Bonjour,

J'ai bien lu l'aide, Email.destinataire[n] est un tableau pouvant contenir
jusqu'à 20 adresses, Email.NbDestinataires= n est le nombre de destinataires.
OK.

Mais comment on s'en sert ?

Depuis hier je cherche désespérément, car je n'ai que le premier destinataire
qui reçoit son message. les autres rien...

J'ai donc fait :
pour nNb = 1 a 10
si {"MonChampEmail_"+nNb}<>"" ALORS
Email.destinataire[nNb]={"MonChampEmail_"+nNb}
Email.NbDastinataire = nNb

POUR i = 1 A nNb
EmailenvoieMessage(...,...,...,...,...)
FIN

Mais mon client trouve que c'est trop lourd pour son serveur et veut un seul
envoi multiple et là, je nage...
L'aidse est très laconique voire brouillardeuse sur ce sujet.

Merci pour votre aide et votre temps.



Une solution peut être un peu complexe mais cela peut être une piste
pour toi.
Nous avons souvent ce genre de besoin mais en beaucoup plus important
(plus de 1000 expéditeurs).
Nous utilisons donc une liste de diffusion avec le serveur de mail
hmailserver (produit open source que je trouve excellent). Comme c'est
du mysql, on crée dynamiquement les listes de diffusion et on envoie un
seul mail. C'est le plus propre car les adresses ne sont pas divulguées
à tout le monde.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
tjfromparis
Le #20486701
j'ai commencé à bricoler un truc.

C'est un poil plus lourd car je parcours 2 fois la boucle : une
premiere fois pour compter et une deuxieme pour envoyer
Je viens de m'apercevoir au passage que le controle de la validité du
mail, j'aurais du le mettre dans la premiere....
Je controles bcp de choses, mais chez nous on aime bien les bretelles
et les ceintures :)

//=== DESTINATAIRES ====
Email.NbDestinataire = 0
POUR TOUTE CHAINE _adrEmail DE _lstDest SEPAREE PAR ";" // on compte
le nombre de destinataires
SI SansEspace(_adrEmail) <> "" ALORS
SI EmailVérifieAdresse(_adrEmail , emailValideSyntaxe) =
emailAdresseValide ALORS
_num++
_destMail += _adrEmail + ";"
FIN
FIN
FIN
SI _num > 0 ALORS
Email.NbDestinataire=_num
_num=0
POUR TOUTE CHAINE _adrEmail DE _destMail SEPAREE PAR ";" //on
affecte les adresses
SI Taille(Remplace(_adrEmail," " ,"")) > 3 ALORS
_num++
Email.Destinataire[_num] = SansEspace(_adrEmail)
SINON
// Trace("Warning : email invalide " + _adrEmail)
FIN
FIN
SINON
Trace("Pas de destinaire(s) ?!")
FIN



Ca marche évidemment pour les CC , CCI les attachements.
Fais gaffe, j'ai eu un phénomène bizarre sur le fRepEnCours() apres
l'ouverture de ma session outlook (j'ai pas encore creusé plus car pas
trop le temps en ce moment). Pour faire bref , avant l'ouverture de ma
session FrepEncours = c:TOTO apres l'ouverture de session c:%win%
....

T'es limité au nombre de session outlook : la boucle va trop vite pour
balancer chez outlook : au bout de 10 outlook en a marre et il te le
dit.
Publicité
Poster une réponse
Anonyme