php : fonction mail() et Cc:

php : fonction mail() et Cc: - PHP - Programmation

Marsh Posté le 20-08-2012 à 15:44:29    

bonjour à tous,
 
J'ai fait un site avec un formulaire qui transmet les réponses par mail via la fonction mail(). Mais je n'arrive pas à envoyer les données à plusieurs mail.  
 
quelqu'un aurait il la gentillesse de regarder mon code php pour m'aider un peu.  
Merci d'avance :  
 
<?php
 
define('MAIL_SUJET','formulaire');
define('to','monmail@yahoo.fr');
 
 
//récupération des données  
foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}
 
 
//Preparation de l entete du mail
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['Nom']} "."<{$_POST['Mail']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['Mail']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
$mail_entete .= 'Cc:mail2.yahoo.fr' . "\r\n";
 
 
 
 
// preparation du corps du mail
$mail_corps = "Message de : $Civilite $Titre $Prenom $Nom\n";
$mail_corps.= "Fonction : $Fonction\n";  
$mail_corps.= "Société : $Societe\n";  
$mail_corps.= "Téléphone : $Telephone\n";  
$mail_corps.= "Adresse : $Adresse\n";  
$mail_corps.= "Mail : $Mail\n";
 
// envoi du mail
if (mail(to,MAIL_SUJET,$mail_corps,$mail_entete)) {
 
$redirection = 'http://accueilmonsite.fr';
    echo '<p style="text-align:center;"><a href="'.$lien.'">Vous allez être redirigé, cliquez ici si vous ne voulez pas attendre...</a></p>';
    echo '<script type="text/javascript">';
    echo " window.setTimeout(\"location=('".$redirection."');\",2000)";
    echo '</script>';
} else {
    echo "Sorry error please try again...";  
}
 
?>
 
 

Reply

Marsh Posté le 20-08-2012 à 15:44:29   

Reply

Marsh Posté le 20-08-2012 à 16:22:08    

En attendant mieux j'ai inséré une nouvelle boucle if(mail() pour envoyer un second mail mais je trouve que ça casse pas des briques comme solution...
Merci à ceux qui prendront le temps de lire tout ça...


Message édité par Station@one le 20-08-2012 à 16:22:40
Reply

Marsh Posté le 20-08-2012 à 16:43:48    

C'est normal $$index = stripslashes(trim($valeur)); (je parle du $$ : ça existe en php mais c'est pas souvent utilisé)
 
Pour le cc, tout ce que tu as à faire, c'est mettre les adresses mail les unes à la suite des autres, séparées par des virgules ;)
 
Conseil : les mettre dans un Array et faire un implode(",", $ArrayMails)
 
Edit : je viens de comprendre ton $$index. Mais y'a déjà une fonction qui existe en php pour ça : extract(); Perso, je trouve que c'est pas une bonne idée de faire comme ça, souvent une source d'erreur tout comme l'ex "registrer_global" à "On" dans le php.ini :/


Message édité par rufo le 20-08-2012 à 16:45:58

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 20-08-2012 à 16:50:52    

Merci.  
Pour les cc j'ai essayé de séparer par des virgules mais rien n'y fais, il n'y a que la première des adresses qui reçoit qqch...
 
tu me conseilles quoi à la place du :
$$index = stripslashes(trim($valeur));
 

Reply

Marsh Posté le 20-08-2012 à 17:03:21    

t'as essayé sur ton PC en local (un wampserver + un smtp local) pour vérifier que ça vient pas de ton provider ou ton hébergeur qui filtre la fonction mail() ?
 
Parce que c'est comme ça que j'ai fait pour mon soft de help-desk Astres (cf ma signature) et ça marche très bien. Tu peux le télécharger pour récupérer une partie de mon code (/Astres/Common/EmailLibrary.php).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 20-08-2012 à 17:05:23    

J'ai pas essayé en local mais directement en ligne.  
En ligne ça marche bien avec une adresse, donc il ne filtre pas le fonction mail().  
Dès que je passe à deux adresses ça marche po...

Reply

Marsh Posté le 20-08-2012 à 17:07:45    

Je vais essayer de voir ton code.  
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed