Quel code dois-je modifier dans ce script PHP pour envoyer un courrier électronique à plus de 20 adresses électroniques ?
<?php
$email_to = "[email protected]"; // your email address
$email_subject = "Contact Form Message"; // email subject line
$thankyou = "thankyou.htm"; // thank you page
?>
S'il vous plaît donnez-moi un exemple. Je vous remercie.
Pour des raisons de lisibilité, le code utilise un tableau et l'implode en une chaîne séparée par des virgules: -
$recipients = array(
"[email protected]",
// more emails
);
$email_to = implode(',', $recipients); // your email address
$email_subject = "Contact Form Message"; // email subject line
$thankyou = "thankyou.htm"; // thank you page
Votre
$email_to = "[email protected], [email protected], [email protected]"
Doit être une liste d'adresses électroniques séparées par des virgules.
mail($email_to, $email_subject, $thankyou);
Séparez-les simplement par une virgule, comme $email_to = "[email protected], [email protected], John Doe <[email protected]>"
.
Le code suivant fera l'affaire ....
<?php
$contacts = array(
"[email protected]",
"[email protected]",
//....as many email address as you need
);
foreach($contacts as $contact) {
$to = $contact;
$subject = 'the subject';
$message = 'hello';
mail($to, $subject, $message, $headers);
}
?>
$recipients = "[email protected],[email protected],[email protected],[email protected]";
$email_array = explode(",",$recipients);
foreach($email_array as $email)
{
echo $to = $email;
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
Quelque chose comme ça:
mail("[email protected] , [email protected] , [email protected]", "Test e-mail", "Hi, this is a test message!");
Le meilleur moyen pourrait être de sauvegarder tous les emails dans une base de données.
Vous pouvez essayer ce code, en supposant que vous avez votre email dans une base de données
/*Your connection to your database comes here*/
$query="select email from yourtable";
$result =mysql_query($query);
/ le code ci-dessus dépend de l'emplacement où vous avez enregistré vos adresses électroniques. Assurez-vous donc de le remplacer par vos paramètres /
Ensuite, vous pouvez créer une chaîne séparée par des virgules du résultat,
while($row=$result->fetch_array()){
if($rows=='') //this prevents from inserting comma on before the first element
$rows.=$row['email'];
else
$rows.=','.$row['email'];
}
Maintenant vous pouvez utiliser
$to = explode(',',$rows); // to change to array
$string =implode(',',$cc); //to get back the string separated by comma
Avec le code ci-dessus, vous pouvez envoyer l'e-mail comme ceci
mail($string, "Test", "Hi, Happy X-Mas and New Year");
Dans la fonction mail, vous pouvez autant de destinataires que vous le souhaitez dans le paramètre $ mailto, séparés par une virgule.
Il est très mauvais d’envoyer toutes les adresses électroniques à tous les destinataires. vous devriez utiliser Cci (copies carbone aveugles).
$from = "[email protected]";
$recipList = "mailaddress1,mailaddress2,etc";
$headers = "MIME-Version: 1.0\nContent-type: text/html; charset=utf-8\nFrom: {$from}\nBcc: {$recipList}\nDate: ".date(DATE_RFC2822);
mail(null,$subject,$message,$headers); //send the eail
Essaye ça. Ça marche pour moi.
$to = $email1 .','. $email2 .','. $email3;
Cela a fonctionné pour moi
$ recipient_email = 'sales @ abc.com, support @ xyz.com';
$ success = mail ($ recipient_email, $ subject, $ body, $ headers);
Je pense que le code suivant fonctionnera.
$tos = array('[email protected]', '[email protected]');
foreach ($tos as $to){
$ok = mail ($to, $subject, $body, $from);
}
if ($ok) {
echo "Message Send";
} else {
echo "Error";
}