Envoie de mail

Résolu/Fermé
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 - 12 nov. 2017 à 18:33
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 - 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);
				}

12 réponses

jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
Modifié le 12 nov. 2017 à 18:46
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 :
https://forums.commentcamarche.net/forum/affich-37584947-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 : https://forums.commentcamarche.net/forum/affich-37584941-php-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                                                                 
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
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.
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
12 nov. 2017 à 20:04
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
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
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;
  } 
}
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
12 nov. 2017 à 20:47
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.
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
12 nov. 2017 à 23:45
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.
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
13 nov. 2017 à 07:43
Sans voir ton code...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
13 nov. 2017 à 08:24
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>
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
13 nov. 2017 à 09:08
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
13 nov. 2017 à 10:10
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?
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
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....)
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
13 nov. 2017 à 13:11
En fait je ne vois pas très bien c'est à propos de mon formulaire il faut que je mettent des echos ?
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
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..
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
13 nov. 2017 à 18:57
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>";
?>
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
15 nov. 2017 à 10:34
Bonjour,
Après plusieurs heures de labeur, j'ai enfin trouvé la solution à mon problème.
Merci.
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
17 nov. 2017 à 09:09
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);
}
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
17 nov. 2017 à 12:45
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
0
LaChaux78 Messages postés 410 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 novembre 2021 33
17 nov. 2017 à 16:43
Je clore ce post.
Cordialement
0