[RESOLU] php mail() To et Cc - Concat plusieurs variables

MmeRose2
Invité n'ayant pas de compte PHPfrance

01 juin 2014, 20:03

Hello there ! Bonjour !

Voila des heures et des heures que je cherche et teste, avec des résultats partiels !
Je voudrais simplement envoyer un mail, avec un header du type : // Mais là bizarrement je n'arrive pas à concaténer correctement, ou ...
Mon email s'envoit bien au destinataire, mais pas au destinataire en copie.
Je voudrais résoudre ce problème ! :)

$header = "From: MON SITE - $admina_nom $admina_prenom <".$admina_email.">".$passage_ligne;
$header.= "Reply-to: MON SITE - $admina_nom $admina_prenom<".$admina_email.">".$passage_ligne;
$header.= "Cc: $nom_en_copie $prenom_en_copie <".$email_en_copie.">" .$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;

Avec le code ci-dessous, je parviens à envoyer un mail, mais en faisant abstraction de $nom et $prenom de l'expéditeur.
Et rien à faire, pour le moment, malgré tous mes tests de concaténation, je n'arrive pas à envoyer de copie
$header = "From: \"MON SITE\" <".$admina_email.">".$passage_ligne; 
$header.= "Reply-to: \"MON SITE\" <".$admina_email.">".$passage_ligne;
**************************************************

Et question n°2, parfaitement liée :
Soit le code ci-dessous :

$email = $destinataire_email; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email)) // On filtre les serveurs qui rencontrent des bogues.
   {$passage_ligne = "\r\n";}
else{$passage_ligne = "\n";}
Dois-je faire de même avec $email_en_copie ? C'est à dire
$email_copie = $email_en_copie; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", <span>$email_copie</span><span>)) </span><br>   {$passage_ligne = "\r\n";}
else{$passage_ligne = "\n";}
ou pas ??

Merci beaucoup pour votre aide, parce que.... hein !!!

Mammouth du PHP | 1339 Messages

01 juin 2014, 20:13

Bonjour,

Voici le header que j'utilise pour mes mails :
		// Envoie du mail
		$entetedate  = date("D, j M Y H:i:s +0200"); // avec offset horaire
		$entetemail  = "From: "$admina_nom." ".$admina_prenom." <".$admina_email.">\n"; // Adresse expéditeur
		$entetemail .= "Cc: ".$email_en_copie."\n"; 
		$entetemail .= "Bcc: \n"; // Copies cachées
		$entetemail .= "Reply-To: ".$admina_email."\n"; // Adresse de retour
		$entetemail .= "MIME-version: 1.0\n"; 
		$entetemail .= "Content-type: text/html; charset=UTF-8;\n"; 
		$entetemail .= "X-Mailer: PHP/".phpversion()."\n" ;
		$entetemail .= "Date: ".$entetedate; 
			
		@mail('[email protected]', 'Le sujet', 'Le texte', $entetemail);
En gros pour Cc, Bcc et Reply-To, tu ne mets que l'adresse email. Le nom n'apparait que dans From.

La question 2 j'ai pas trop compris.
Bon sinon tu me fais un message privé et on se fait un TeamViewer

MmeRose2
Invité n'ayant pas de compte PHPfrance

01 juin 2014, 20:41

Merci beaucoup pour ta réponse :) de MON SITE - Nom expéditeur Prénom exp, s'affiche enfin !!! ouais !!!! Merci, des heures de tests alors que tu l'as solutionné en quelques secondes ! Merci !


Par contre, toujours pas de copie reçue sur email_copie !! Ooooooh !!

Je t'explique, pour la copie : Mon formulaire envoyé par exemple par une secrétaire, peut être envoyé à un destinataire de type -sécrétaire, -comptabilité, -commercial, etc.. , avec copie à compte de type -secrétaire, -commercial, -client, etc... !

Donc if (isset($copie_to_secretaire) { $header.= "Cc: ".$copie_to_secretaire."".$passage_ligne; } ???
else if ($copie_to_commercial)

J'ai essayé plusieurs options entre temps, sans succès. Peut-être parce que ça fait 24h et qu'à force je ne vois plus rien ?
Merci si tu peux me recadrer !!! beaucoup !

Mammouth du PHP | 1339 Messages

01 juin 2014, 20:48

Euh bah logique ca devrait marcher.
Tout dépend de ce que vaut $copie_to_commercial.
Et je pense que le . collé a $header nique tout.
$header .= 
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 32 Messages

01 juin 2014, 20:59

$header = "From: ".$mar." ".$admina_nom." ".$admina_prenom." <".$admina_email.">".$passage_ligne;
$header .= "Reply-to: ".$admina_email."".$passage_ligne;
if(isset($copie_to_seeker_email))
  {$header .= "Cc: ".$copie_to_seeker_email."".$passage_ligne;  }
else if(isset($copie_to_secretaire_email))
  {$header .= "Cc: ".$copie_to_secretaire_email."".$passage_ligne;  }
Comme ça ? :'( parce ça ça marche pas !!! // $copie_to_seeker_email vaut email à mettre en copie, ya pas de doute possible. J'ai essayé avec décalage du point dans header.= > header .= mais no success ! Le point quelque soit son espacement est bleu, donc pris en compte... Hummm !!!

Eléphanteau du PHP | 32 Messages

01 juin 2014, 21:16

Elie ? Eliiiiiiiee ?????? :p

Mammouth du PHP | 1339 Messages

01 juin 2014, 21:46

Met la totalité du code $header en fait ...
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 32 Messages

01 juin 2014, 22:37

Okay. Je fais ça demain car attente de quelques petites minutes :) = un verre qui m'a perdue parmi des floooots de code. Merci pour jusqu'ici. Je reviens demain avec peut-être avec un success, ou avec un help. Good night :) thank u

Eléphanteau du PHP | 32 Messages

02 juin 2014, 09:06

Merci pour ton aide Elie. A la prochaine donc ! Je reviendrai !
Mon problème est résolu.
J'affichais : "Votre message a bien été envoyé à la Secrétaire Mme Rose avec copie au Client Mr Orange" --> de la manière suivante : "a bien été envoyé à $data['secretaire_civilite'] ". $data['secretaire_email'] ". Mais effectivement il ya un endroit où j'ai omis de définir $copie_to_client_email = ....;
La porte conseil.
Merci pour ton aide sur la concat de mail() et ça marche !
*Bonne journée*

Comment on met Résolu ici ?