envoi de mail selon checkbox
Bonjour,
J'essaie de mettre en place un formulaire d'envoi de mail un peu compliqué.
Principe :
L'expéditeur peut choisir un ou plusieurs destinataires pré-définis dans une base MySQL .
Une liste des destinataires potentiels est affichée ; en face de chaque nom figure une checkbox.
(Pour la suite, le script devra donner la possibilité d'adresser un mail à un destinataire hors-liste, d'envoyer une copie cachée (ou plusieurs), de joindre un fichier, d'archiver les mails envoyés dans la bdd, de faire du bon café... mais chaque chose en son temps !)
Je ne sais pas comment dire à la fonction mail de prendre en compte les destinataires issus des checkbox.
Voici mon code actuel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| <form method="post" action="cettepage.php" enctype="multipart/form-data">
<div id="admincompanytable">
<table id="companytable">
<?php
//affiche la liste des utilisateurs
//connexion à la base de données
mysql_connect('localhost', 'user', 'password');
mysql_select_db('entreprises');
// récupération de la liste des utilisateurs
$companyTable = mysql_query('select * from entreprises_identity order by entreprises_dir');
while ($userInfo = mysql_fetch_array($companyTable))
{
?>
<tr>
<td class="lot"><?php echo $userInfo['entreprises_dir']; ?> </td>
<td class="metier"> <?php echo $userInfo['entreprises_name']; ?></td>
<td> <input type="checkbox" name="destinataires[]" value="<?php echo $userInfo['entreprises_mail']; ?>" /></td>
</tr>
<?php
}
?>
</table>
</div>
<div id="mailadminform">
<label for="destinataire"><b>Destinataires</b><br />
<input type="button" value=" Cochez dans la liste ci-contre." size="12" /><br />
<label for="subject"><b>Sujet</b></label><br />
<input name="subject" type="text" size="24" /><br />
<label for="message"><b>Message</b></label><br />
<textarea name="message" cols="25" rows="8"></textarea><br />
<label for="fileatt"><b>Joindre un fichier</b></label><br />
<input type="file" name="fileatt" size="11" /><br />
<label> </label><br />
<input name="Annuler" type="reset" value="Annuler"><input name="soumettre" type="submit" value="Envoyer">
<?php
// vérification que les champs destinataires, sujet et message sont bien remplis
if(isset($_POST['destinataires'])&&isset($_POST['subject'])&&isset($_POST['message']))
{
// affectation des variables destinataires, sujet, message
$destinataires = $_POST['destinataires'];
$subject = $_POST['subject'];
$message = $_POST['message'];
// affichage d'un message si succès (ok) ou erreur (ko)
$messageok ='<p><b>Succès ! Message envoyé !</b></p>';
$messageko ='<p><b>Erreur... e-mail non envoyé.</b></p>';
// envoi du mail
if (mail($destinataires,$subject,$message))
{
echo $messageok;
}
else
{
echo $messageko;
}
}
else
{
echo $messageko;
}
//fermeture de la connexion
mysql_close();
?>
</div>
</form> |
La table entreprises_identity étant ainsi constituée :
Code:
1 2 3 4 5 6 7
| CREATE TABLE IF NOT EXISTS `entreprises_identity` (
`entreprises_id` int(2) NOT NULL auto_increment,
`entreprises_name` varchar(55) NOT NULL,
`entreprises_mail` varchar(65) NOT NULL,
`entreprises_dir` varchar(3) NOT NULL,
PRIMARY KEY (`entreprises_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
En envoi manuel (champ destinataire testé sans chekbox) ce code fontionne (même s'il est loin d'être optimisé).
Par contre, avec les checkboxes, cette ligne :
if (mail($destinataires,$subject,$message))
ne me semble pas adéquate mais je ne sais pas par quoi la remplacer...
Merci de m'aiguiller.
à plus,
rcjcrcjc