Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2007, 09h30   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Par défaut [PHPMailer] Problème avec phpmailer

Bonjour,

J'aurai besoin que quelqu'un m'éclaire un peu.

Voila, j'utilise phpmailer pour envoyer par mail, les informations saisies dans mon formulaire. Tout fonctionne nickel.

Par contre, j'aimerai envoyer des mails différents selon certaines conditions, comme ceci

Code :
1
2
3
4
5
6
7
8
9
10
11
if (condtiton1) { 
$mail->Body='2e message'; 
$mail->AddAddress(destinataire1@xxx.com'); 
} 
if (condition2){ 
$mail->Body=$'2emessage'; 
$mail->AddAddress(destinataire2@xxx.com'); 
} 
 
$mail->AddAddress(destinataire3@xxx.com'); 
$mail->Body='MsgPrincipal';
Je ne sais pas si mon code est assez clair.
Ce que je voudrai faire, c'est envoyer à chaque validation du formulaire, le 'MsgPrincipal' au destinataire3 et le '2emessage' au 'destinataire2' et 'destinataire3' que si les conditions sont validées. Donc en gros, envoyer des mails différents à différents destinataires.

J'arrive à envoyer un mail aux 'destinataire2' et 'destinataire3' si les conditions sont bonnes cependant, ce n'est pas le '2emessage' qui est envoyé mais le 'MsgPrincipal'.

Désolé, j'ai essayé d'être le plus clair possible.
Est-ce que quelqu'un peut m'aider?

Merci.
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 09h34   #2
Membre confirmé
 
Avatar de Sebou77
 
Inscription : mars 2006
Messages : 212
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2006
Messages : 212
Points : 201
Points : 201
Utilises les balises CODE

Sinon tu mets
Code :
$mail->Body='MsgPrincipal';
en dehors de tes conditions, donc normal qu'il te l'envois
Sebou77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 09h44   #3
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Oui mais ce que je souhaiterai faire, c'est envoyer le 'MsgPrincipal' dans tous les cas,quoi qu'il arrive et envoyer le '2e message' que si la condition1 ou la condition2 est validée.
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 09h46   #4
Membre confirmé
 
Avatar de Sebou77
 
Inscription : mars 2006
Messages : 212
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mars 2006
Messages : 212
Points : 201
Points : 201
En fait tu veux pouvoir ajouter le Message2 au message principale c'est ça ?

Dans ce cas là ça serait :

Code :
$mail->Body .= 'MsgPrincipal';
Pour l'ajouter au message déja présent
Sebou77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 10h01   #5
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Citation:
Envoyé par Arkoze
Donc en gros, envoyer des mails différents à différents destinataires.
Donc normalement si je me souviens bien de la classe : un mail = un objet mail donc pour chaques mail a envoyer faut creer un objet mail ! lol ce que tu n as pas l'air de faire !

Pire dans ton code tu change plusieurs fois le body de ton message jusqu a ce qu a la fin tu remette le body d'origine donc ça e peut pas marcher effectivement ....
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 10h20   #6
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Oui, effectivement, ajoutant un nouveau body, je pensais qu'il allait écraser l'ancien.

Donc, ce que je dois faire, c'est créer plusieurs objet mail?

Puis-je le faire sans appeller plusieurs fois la fonction?
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 10h30   #7
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Pour ecrire un email que ce soit sur un client mail software ou un webmail :

tu crée un nouveau mail , et pour cela tu utilise le bouton 'Ecrire un mail'

bah phpmailer c est pareil : tu veux ecrire un mail alors tu dois créer un objet 'mail' en utilisant la fonction 'creer un objet mail ' lol
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 10h37   #8
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
ou sinon en bidouillant ton code :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if (condtiton1) { 
$mail->Body='2e message'; 
$mail->AddAddress("destinataire1@xxx.com"); 
} 
if (condition2){ 
$mail->Body=$'2emessage'; 
$mail->AddAddress("destinataire2@xxx.com"); 
} 
$mail->Send() ; //hop 2ememessage envoyé
$mail->AddAddress("destinataire3@xxx.com"); 
$mail->Body='MsgPrincipal';
$mail->Send() ; //hop MsgPrincipal envoyé

mais bon un peu chelou comme methode
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 10h46   #9
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
lol ok, j'essayerai tes 2 méthodes.

Je te tiens au courant.

Merci pour ton aide en tout cas.
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 17h29   #10
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Bon, déjà une bonne chose, j'arrive à envoyer des mail différents à différents destinataires. C'était effectivement pas très compliqué.

Voici comment j'ai procédé :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
if (condtiton1) { 
$mail->Body='2e message'; 
$mail->Subject='Sujet';
$mail->AddBCC('destinaire1@xxx.com');
$mail->Send();
} 
if (condition2){ 
$mail->Body='2e message'; 
$mail->Subject='Sujet';
$mail->AddBCC('destinaire2@xxx.com');
$mail->Send();
}   
 
$mail->Subject='Sujet';
$mail->AddAddress(destinataire3@xxx.com'); 
$mail->Body='MsgPrincipal';
Ce code envoie bien le '2e message' aux 'destinataires1' et 'destinataires2' que si les conditions sont validées et le 'MsgPrincipal' au destinataire3. En revanche, au lieu de recevoir que le '2e message', les destinataires1 et 2 reçoivent le '2e message' ET le 'MsgPrincipal'.

C'est un peu le bordel

Je vais essayer de trouver le problème mais c'était pour vous tenir au courant.
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 17h39   #11
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
normal !

Code php :
$mail->AddAddress('destinataire3@xxx.com');

ajoute cette adresse a la liste d'adresse deja existente donc si les condition1 et 2 ont ete validée la liste contient deja les 2 autres adresses d'ou la redondance !

C'est pourquoi je te conseillais de recreer un mail !
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 16h47   #12
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
En faite, en faisant ce que tu m'as proposé, c'est à dire

Citation:
RideKicK a dit :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if (condtiton1) { 
$mail->Body='2e message'; 
$mail->AddAddress("destinataire1@xxx.com"); 
} 
if (condition2){ 
$mail->Body=$'2emessage'; 
$mail->AddAddress("destinataire2@xxx.com"); 
} 
$mail->Send() ; //hop 2ememessage envoyé
$mail->AddAddress("destinataire3@xxx.com"); 
$mail->Body='MsgPrincipal';
$mail->Send() ; //hop MsgPrincipal envoyé
Il envoie aux destinataires1 et 2, le '2eMessage' ET 'MsgPrincipal' et au destinataire3 uniquement le 'MsgPrincipal'

Mais je ne vois pas comment recréer le mail
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h54.


 
 
 
 
Partenaires

Hébergement Web