web-dev-qa-db-fra.com

PHP envoyer un courrier à plusieurs adresses e-mail

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.

33
rakib

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
53
prodigitalson

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);
27
Stefan H

Séparez-les simplement par une virgule, comme $email_to = "[email protected], [email protected], John Doe <[email protected]>".

26
Phoenix

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);

}

?>
11
rajmohan
    $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);

    }
6
Abhijit

Quelque chose comme ça:

mail("[email protected] , [email protected] , [email protected]", "Test e-mail", "Hi, this is a test message!");

http://myphpform.com/php-form-multiple-recipients.php

6
zsalzbank

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");
2
tkt986

Dans la fonction mail, vous pouvez autant de destinataires que vous le souhaitez dans le paramètre $ mailto, séparés par une virgule.

1
XMen

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
1
Roel B.

Essaye ça. Ça marche pour moi.

$to = $email1 .','. $email2 .','. $email3;
1
uriateho

Cela a fonctionné pour moi

$ recipient_email = 'sales @ abc.com, support @ xyz.com';

$ success = mail ($ recipient_email, $ subject, $ body, $ headers);

0
taha12us

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";
}
0
prasanth