Envoie de mail [Résolu]

LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 12 nov. 2017 à 18:33 - Dernière réponse : LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention
- 17 nov. 2017 à 16:43
Bonjour,
J'ai une page qui permet d'envoyer des message privé aux membres. Elle fonctionne à merveille gràce a vous. J'aimerai également y rajouter à savoir...
Lorsqu'un membre envoie un message cela génére un envoie de mail pour l'informer qu'il doit se connecter sur son espace afin de prendre connaissance de son message.
Par contre ce que je ne sais pas c'est où je dois insérer le script j'ai essayé plusieurs solution mais sans résultat. Pouvez-vous encore m'aider sur ce point.
Je vous remercie.
<h1>Envoyer un message</h1>

<?php
$PARAM  = array (
    'IDMESS' 	=> isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '',
    'IDEXP'  	=> isset($_POST['idexp']) ? $_POST['idexp'] : '',
    'DMESS'  	=> isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '',
    'TMESS' 	=> isset($_POST['tmess']) ? $_POST['tmess'] : '',
    'MESS'  	=> isset($_POST['mess']) ? $_POST['mess'] : '',
);

if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) {
    
    switch($_REQUEST['action']) {
		case 'ajouter':
			
			if ($_POST['tmess'] == '' || ($_POST['mess'] =='')) {
				$erreur = "<span class='erreur'>Veuillez renseigner le Titre et le Message !</span>";
			} else {
				
				$sql =	"INSERT INTO cdc_messages (idexp, dmess, tmess, mess)
						VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."')";
				$requete = $bdd->prepare($sql);
				$requete->bindParam(':idmess', $PARAM['IDMESS']);
				$requete->bindParam(':idexp', $_SESSION['idpers']);
				$requete->bindParam(':dmess', $PARAM['DMESS']);
				$requete->bindParam(':tmess', $PARAM['TMESS']);
				$requete->bindParam(':mess', $PARAM['MESS']);
				$requete->execute();
            
				$idmess  	= isset($_POST['idmess']) ? $_POST['idmess'] : NULL;
				$idmess 	= $bdd->lastInsertId();
				$envoyer  	= isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL;
				$iddest  	= isset($_POST['iddest']) ? $_POST['iddest'] : NULL;
			
				if (is_array($envoyer)) {	
					foreach($envoyer as $iddest) {             
				
				$sql =	"INSERT INTO cdc_destinataires (idmess, iddest)
						VALUES ('".$idmess."', '".$iddest."')";
				$requete = $bdd->prepare($sql);
				$requete->bindParam(':idmess', $idmess);
				$requete->bindParam(':iddest', $iddest);
				$requete->execute();
					}
				}
			$success = "<span class='success'>Ton message a bien été envoyé</span>";
			}
    break;
    }
}
?>
		<form method="post" name="env" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return verif()" enctype="multipart/form-data">
			
			<table class="resp" border="0" cellspacing="1" cellpadding="5">
				<tr>
					<p>
						Fichier autoriser (WORD, EXCEL ou PDF) 500Ko maximum :</br></br>
						<input type="hidden" name="MAX_FILE_SIZE" value="500000"/>
						<input type="file" name="upload_localfile" id="upload_localfile"/>
					</p>
				</tr>
				<tr>
					<td class="libel">Date:</td>
					<td><input type="text" name="dmess" value="<?php echo $today ?>" size="8"></td>
				</tr>
				<tr>
					<td class="libel">Titre:</td>
					<td><textarea name="tmess" rows="1" cols="40" class="oblig"></textarea></td>
				</tr>
				<tr>
					<td class="libel">Message:</td>
					<td><textarea name="mess" rows="6" cols="40"></textarea></td>	
				</tr>
				<tr>
					<td><input type="hidden" name="action" value="ajouter"></td>
					<td class="data"><input type="submit" name="submit" value="Envoyer le message"></td>
				</tr>
			</table>
<h4>Choisissez les destinataires!</h4>
<?php
	$sql = "SELECT cdc_adherer.idpers,nom,prenom
				FROM cdc_personnes,cdc_adherer
					WHERE cdc_personnes.idpers = cdc_adherer.idpers
					AND annee = '$aadh'
					AND idclas != 1
					AND idclas != 2
					AND idclas != 4
					AND email != ''
					ORDER BY nom,prenom";
    $requete = $bdd->prepare($sql);
    $requete->execute();
	
	echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>";
	echo "<div><pre>";
    while ($donnees = $requete->fetch()) {
        $id = $donnees->idpers;
        echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL;
    }
	echo "</pre></div>";
?>
			</table>
		</form>	

Voici le script d'envoie de mail.
<?php
			$sql = "SELECT nom,prenom,email,annee,iddest,idmess
					FROM cdc_personnes,cdc_adherer,cdc_destinataires
					WHERE cdc_personnes.idpers = cdc_adherer.idpers
					AND annee='$aadh'
					AND idclas != 1
					AND idclas != 2
					AND idclas != 3
					AND idclas != 4
					AND idclas != 8";
			$requete = $bdd->prepare($sql);
			$requete->execute();

				while ($donnees2 = $requete->fetch()) {
					// Adresse email des destinataires
					$destinataire = $donnees2->email;
					// Titre de l'email
					$sujet = 'Nouveau message';
					// Contenu du message de l'email
					$message = '<html>';
					$message .= '<body><p>Bonjour '.$donnees2->prenom.', <br/>';
					$message .= 'Tu as un nouveau message sur ton espace membre...<br/>';
					$message .= 'Bonne lecture.<br/>';
					$message .= '<p style="color:red;">Merci de ne pas répondre à cet email, ceci est un envoi automatique</p></body>';
					$message .= '</html>';
					// Fonction principale qui envoi l'email
					mail($destinataire, $sujet, $message, $headers);
				}
Afficher la suite 

18 réponses

Répondre au sujet
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - Modifié par jordane45 le 12/11/2017 à 18:46
0
Utile
1
Bonjour,

Ben... ici :
if (is_array($envoyer)) { 
     foreach($envoyer as $iddest) {             
    
    $sql = "INSERT INTO cdc_destinataires (idmess, iddest)
      VALUES ('".$idmess."', '".$iddest."')";
    $requete = $bdd->prepare($sql);
    $requete->bindParam(':idmess', $idmess);
    $requete->bindParam(':iddest', $iddest);
    $requete->execute();
     }

puisque c'est là que tu "génères" l'envoie des messages aux membres...

Par contre .. je t'invite à appliquer ceci dans l'écriture de tes codes :
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Cela rendra ton compte plus clair, donc plus facile à maintenir ... aussi bien pour toi que pour ceux à qui tu viens poser tes questions...;

Sans oublier de gérer les éventuelles erreurs PDO en plaçant CHAQUE requête dans un bloc try/catch (et en ayant activé la gestion des erreurs PDO dans ta connexion )
Pour rappel : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

NB : dans le premier lien que je t'ai donné... tu pourras lire un truc intéressant concernant l'utilisation de isset ET de !empty ....
J'espère que tu feras la correction dans ton code ...







Cordialement, 
Jordane                                                                 
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 12 nov. 2017 à 18:48
Autre chose ... si tu es en "local" sur ton ordi (via un logiciel comme wamp, xampp, easyphp..... ) .. la fonction mail peut ne pas fonctionner.
Il faut paramétrer le smtp dans le php.ini (tu trouveras des exemples et tutos sur le net, certains proposant même d'utiliser fakesendmail. Je te laisse regarder)

Sinon tu peux toujours passer par un script php : PhpMailer qui te permettras d'utiliser une boite mail perso comme une gmail par exemple.
Commenter la réponse de jordane45
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 12 nov. 2017 à 20:04
0
Utile
1
Bonjour,
Merci pour ton aide. Je travail directement sur mon serveur. Je vais voir, il dois avoir un autre soucis pour l'envoie de mail car j'avais bien placé le script à cet endroit.
J'ai déjà mis en place une fonction d'envoie de mail pour autre chose et ça fonctionne.
Je vais regarder tout ça.
Merci
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 12 nov. 2017 à 20:35
Y'a plusieurs erreurs dans ton code ...

Déjà au niveau de ta requête
AND idclas != 1
					AND idclas != 2
					AND idclas != 3
					AND idclas != 4
					AND idclas != 8

Revient à écrire
idclas  NOT IN (1,2,3,4,8)


Ensuite, au niveau de l'envoie du mail.. tu as la variable $headers .. hors je ne voie nul-part où tu l'as initialisée dans ton code ..


Tu pourrais éventuellement tester ce code pour gérer l'envoi de mail
function sendEmail($to,$from ='moi',$subject='sujet mail',$message="",$attach = NULL){

 $headers = "From: $from";
 
  // boundary 
  $semi_rand = md5(time()); 
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
 
  // headers for attachment 
  $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; 
 
  // multipart boundary 
  $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; 
  $message .= "--{$mime_boundary}\n";

  //-------------------------------------------------------//
  //Ajout des pieces jointes si il y en a
  if(!empty($attach)){
    foreach($attach as $pj){
      $file = fopen($pj,"rb");
      $data = fread($file,filesize($pj));
      fclose($file);
      $data = chunk_split(base64_encode($data));
      $fileName = basename($pj);
      $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$pj\"\n" . 
                  "Content-Disposition: attachment;\n" . " filename=\"$fileName\"\n" . 
                  "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
      $message .= "--{$mime_boundary}\n";    
    }
  }

  // send
  if(mail($destinataire, $from,  $sujet, $message)) { 
    return true;
  } else { 
    return false;
  } 
}
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 12 nov. 2017 à 20:47
0
Utile
pour la variable $header oups j'ai oublié de copié la ligne qui l'initialise en fait je n'avais pas vu.
J'étais en train d'analyser tout ça et je me pose une question..
En fait c'est cette boucle que définie l'id du membre sélectionner donc l'envoie de mail se faisant par rapport à cet ID.
C'est ce que m'a aider à mettre en place.
    while ($donnees = $requete->fetch()) {
        $id = $donnees->idpers;
        echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL;
    }

Je vais tester ta fonction d'envoie de mail.
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 12 nov. 2017 à 23:45
0
Utile
1
Bonjour,
Je ne comprends pas trop pourquoi je n'arrive pas à envoyer un mail après avoir sélectionner les checkboxs et envoyer le formulaire.
Si vous pouvez m'aider.
Je vous remercie.
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 13 nov. 2017 à 07:43
Sans voir ton code...
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 13 nov. 2017 à 08:24
0
Utile
1
Bonjour,
Voici la page.
Merci
<h1>Envoyer un message</h1>

<?php
$PARAM  = array (
'IDMESS' 	=> isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '',
'IDEXP'  	=> isset($_POST['idexp']) ? $_POST['idexp'] : '',
'DMESS'  	=> isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '',
'TMESS' 	=> isset($_POST['tmess']) ? $_POST['tmess'] : '',
'MESS'  	=> isset($_POST['mess']) ? $_POST['mess'] : '',
);

if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) {
switch($_REQUEST['action']) {
case 'ajouter':
	if ($_POST['tmess'] == '' || ($_POST['mess'] =='')) {
		$erreur = "<span class='erreur'>Veuillez renseigner le Titre et le Message !</span>";
	} else {
		$sql ="INSERT INTO cdc_messages (idexp, dmess, tmess, mess)VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."')";
	$requete = $bdd->prepare($sql);
	$requete->bindParam(':idmess', $PARAM['IDMESS']);
	$requete->bindParam(':idexp', $_SESSION['idpers']);
	$requete->bindParam(':dmess', $PARAM['DMESS']);
	$requete->bindParam(':tmess', $PARAM['TMESS']);
	$requete->bindParam(':mess', $PARAM['MESS']);
	$requete->execute();
            
	$idmess = isset($_POST['idmess']) ? $_POST['idmess'] : NULL;
	$idmess 	= $bdd->lastInsertId();
	$envoyer  	= isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL;
	$iddest  	= isset($_POST['iddest']) ? $_POST['iddest'] : NULL;
	if (is_array($envoyer)) {foreach($envoyer as $iddest) {             
	$sql ="INSERT INTO cdc_destinataires (idmess, iddest)VALUES ('".$idmess."', '".$iddest."')";
	$requete = $bdd->prepare($sql);
	$requete->bindParam(':idmess', $idmess);
	$requete->bindParam(':iddest', $iddest);
	$requete->execute();
}
}
	$success = "<span class='success'>Ton message a bien été envoyé</span>";
			}
    break;
    }
}
?>
<form method="post" name="env" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return verif()" enctype="multipart/form-data">
<table class="resp" border="0" cellspacing="1" cellpadding="5">
<tr><p>Fichier autoriser (WORD, EXCEL ou PDF) 500Ko maximum :
</br></br>
<input type="hidden" name="MAX_FILE_SIZE" value="500000"/>
<input type="file" name="upload_localfile" id="upload_localfile"/></p></tr>
<tr><td class="libel">Date:</td>
<td><input type="text" name="dmess" value="<?php echo $today ?>" size="8"></td>
</tr><tr><td class="libel">Titre:</td>
<td><textarea name="tmess" rows="1" cols="40" class="oblig"></textarea></td>
</tr><tr>
<td class="libel">Message:</td>
<td><textarea name="mess" rows="6" cols="40"></textarea></td></tr>
<tr><td><input type="hidden" name="action" value="ajouter"></td>
<td class="data"><input type="submit" name="submit" value="Envoyer le message"></td></tr></table>

			<table class="resp" border="0" cellspacing="1" cellpadding="5">
<h4>Choisissez les destinataires!</h4>
<?php
$sql = "SELECT cdc_adherer.idpers,nom,prenom FROM cdc_personnes,cdc_adherer
WHERE cdc_personnes.idpers = cdc_adherer.idpers
AND annee = '$aadh'
AND idclas IN (3,7,8)
AND email != ''
ORDER BY nom,prenom";
$requete = $bdd->prepare($sql);
$requete->execute();
	echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>";
	echo "<div><pre>";
while ($donnees = $requete->fetch()) {$id = $donnees->idpers;
        echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL;
    }
echo "</pre></div>";
?>
</table>
</form>	
</td>
</table>
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 13 nov. 2017 à 09:08
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 13 nov. 2017 à 10:10
0
Utile
1
A propos de mes gestion d'erreur j'ai une fonction dans mon fichier init.php il est dans le bloc try-catch en PDO.
J'ai rajouté ses 3 lignes.
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Pour l'utilisation de de isset et de !empty cela me semble correct non?
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 13 nov. 2017 à 10:18
Et l'organisation du code ???
Quand je vois des requêtes en plein milieu de code HTML ... je m'arrache les cheveux (bien qu'ils soit coupés très courts....)
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 13 nov. 2017 à 13:11
0
Utile
1
En fait je ne vois pas très bien c'est à propos de mon formulaire il faut que je mettent des echos ?
jordane45 19969 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 13 nov. 2017 à 13:52

Où placer son code php
Pour faciliter la lecture du code et donc sa maintenance et son deubug... on place, en général, le maximum de code php AVANT son code html. On évite également d'ouvrir/fermer les balises de code php dans tous les sens..
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 13 nov. 2017 à 18:57
0
Utile
Voici ma page.
Je vous remercie.
<?php
echo "<h1>Envoyer un message</h1>";
$PARAM  = array (
'IDMESS' 	=> isset($_REQUEST['idmess']) ? $_REQUEST['idmess'] : '',
'IDEXP'  	=> isset($_POST['idexp']) ? $_POST['idexp'] : '',
'DMESS'  	=> isset($_POST['dmess']) ? dw2m($_POST['dmess']) : '',
'TMESS' 	=> isset($_POST['tmess']) ? $_POST['tmess'] : '',
'MESS'  	=> isset($_POST['mess']) ? $_POST['mess'] : '',
);
if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) {
    switch($_REQUEST['action']) {
case 'ajouter':
if ($_POST['tmess'] == '' || ($_POST['mess'] =='')) {
$erreur = "<span class='erreur'>Veuillez renseigner le Titre et le Message !</span>";
} else {
$sql = "INSERT INTO cdc_messages (idexp, dmess, tmess, mess)
VALUES ('".$_SESSION['idpers']."','".$PARAM['DMESS']."', '".$PARAM['TMESS']."', '".$PARAM['MESS']."')";
$requete = $bdd->prepare($sql);
$requete->bindParam(':idmess', $PARAM['IDMESS']);
$requete->bindParam(':idexp', $_SESSION['idpers']);
$requete->bindParam(':dmess', $PARAM['DMESS']);
$requete->bindParam(':tmess', $PARAM['TMESS']);
$requete->bindParam(':mess', $PARAM['MESS']);
$requete->execute();
$idmess  = isset($_POST['idmess']) ? $_POST['idmess'] : NULL;
$idmess = $bdd->lastInsertId();
$envoyer  = isset($_POST['envoyer']) ? $_POST['envoyer'] : NULL;
$iddest  = isset($_POST['iddest']) ? $_POST['iddest'] : NULL;
	if (is_array($envoyer)) {	
		foreach($envoyer as $iddest) {             
$sql = "INSERT INTO cdc_destinataires (idmess, iddest)
	VALUES ('".$idmess."', '".$iddest."')";
$requete = $bdd->prepare($sql);
$requete->bindParam(':idmess', $idmess);
$requete->bindParam(':iddest', $iddest);
$requete->execute();
	}
}
$success = "<span class='success'>Ton message a bien été envoyé</span>";
}
break;
   }
}
echo "<table width='100%'>
<td width='30%' class='table-separateur-resp' valign='top'>
</br></br>
<form method='post' name='env' action='' enctype='multipart/form-data'>
<table class='resp' border='0' cellspacing='1' cellpadding='5'>
<tr>
<p>Fichier autoriser (WORD, EXCEL ou PDF) 500Ko maximum :</br></br>
<input type='hidden' name='MAX_FILE_SIZE' value='500000'/>
<input type='file' name='upload_localfile' id='upload_localfile'/>
</p>
</tr>
	<tr>
		<td class='libel'>Date:</td>
		<td><input type='text' name='dmess' value='' size='8'></td>
</tr>
<tr>
		<td class='libel'>Titre:</td>
		<td><textarea name='tmess' rows='1' cols='40' class='oblig'></textarea></td>
</tr>
<tr>
	<td class='libel'>Message:</td>
	<td><textarea name='mess' rows='6' cols='40'</textarea></td>	
</tr>
<tr>
	<td><input type='hidden' name='action' value='ajouter'></td>
	<td class='data'><input type='submit' name='submit' value='Envoyer le message'></td>
</tr>
</table>
</td>
<td width='70%' class='table-separateur-resp' valign='top'>
			<table class='resp' border='0' cellspacing='1' cellpadding='5'>
<h4>Choisissez les destinataires!</h4>";

	$sql = "SELECT cdc_adherer.idpers,nom,prenom
				FROM cdc_personnes,cdc_adherer
					WHERE cdc_personnes.idpers = cdc_adherer.idpers
					AND annee = '$aadh'
					AND idclas IN (3,7,8)
					AND email != ''
					ORDER BY nom,prenom";
    $requete = $bdd->prepare($sql);
    $requete->execute();
	
	echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>";
	echo "<div><pre>";
    while ($donnees = $requete->fetch()) {
        $id = $donnees->idpers;
        echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL;
    }
	echo "</pre></div>
			</table>
		</form>	
	</td>
</table>";
?>
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 15 nov. 2017 à 10:34
0
Utile
Bonjour,
Après plusieurs heures de labeur, j'ai enfin trouvé la solution à mon problème.
Merci.
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 17 nov. 2017 à 09:09
0
Utile
Bonjour,
Zut je me suis trop emballé trop vite en fait.
Je viens de m'aperçevoir que la fonction envoie de mail ne fonctionne pas correctement pourtant le serveur les reçoit bien, mais ne sont pas redistribué pas le serveur.
Pour faire un topo...
J'ai ma liste de membre avec checkboxs à cocher comme ceux ci.
	echo "<div><input type='checkbox' id='checkAll'/><b>(Sélectionner tous les membres)</b></div>";
	echo "<div><pre>";
    while ($donnees = $requete->fetch()) {
        $id = $donnees->idpers;
        echo "<input type='checkbox' class='ckb' id='env_".$id."' name='envoyer[]' value='".$id."'>".$donnees->nom . " " . $donnees->prenom ."" . PHP_EOL;
    }
	echo "</pre></div>";

ensuite j'ai mon envoie de mail.
Pouvez-vous me dire ce qui ne vas pas s'ils vous plait.
Je vous remercie.
$sql = "SELECT nom,prenom,email
FROM cdc_personnes,cdc_adherer
WHERE cdc_personnes.idpers = cdc_adherer.idpers
AND annee='$aadh'
AND idclas IN (2)";
$requete = $bdd->prepare($sql);
$requete->execute();
			
if ($donnees2 = $requete->fetch()) {
// Adresse email des destinataires
$destinataire = $donnees2->email;
$prenom = $donnees2->prenom;
while ($donnees2 = $requete->fetch())
$destinataire .= ', '.$_POST['envoyer'];
// Titre de l'email
$sujet = 'Nouveau message Clique de Cruet';
// Contenu du message de l'email
$message = '<html>';
$message .= '<body><p>Bonjour '.$prenom.', <br/>';
$message .= 'Je t\'ai envoyé un nouveau message dans ton espace membre...<br/>';
$message .= 'Bonne lecture.<br/>';
$message .= '<p>'.$_SESSION['prenom'].'</p>';
$message .= '<p style="color:red;">Merci de ne pas répondre à cet email, ceci est un envoi automatique</p></body>';
$message .= '</html>';
// Pour envoyer un email HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
$headers .= 'From:"mon_site"<>'."\n";
// Fonction principale qui envoi l'email
mail($destinataire, $sujet, $message, $headers);
}
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 17 nov. 2017 à 12:45
0
Utile
Bonjour,
Je viens de m'apercevoir qu'en fait c'est uniquement la première personne de ma liste qui reçois les mail en plus en faisant un print-r cela me retourne....
"pierredupond@gmail.com, Array, Array"
Pouvez-vous m'aider s'ils vous plait.
e vous remercie
Commenter la réponse de LaChaux78
LaChaux78 224 Messages postés lundi 25 juillet 2016Date d'inscription 13 février 2018 Dernière intervention - 17 nov. 2017 à 16:43
0
Utile
Je clore ce post.
Cordialement
Commenter la réponse de LaChaux78