J'utilise drupal_mail pour envoyer des e-mails,
$to = '[email protected]';
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
Je souhaite envoyer des e-mails à plusieurs adresses e-mail à la fois. Dois-je faire ça?
$to = array('[email protected]', '[email protected]', '[email protected]',);
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
Le paramètre to à drupal_mail
est une chaîne, pas un tableau. Mais vous pouvez avoir autant de destinataires que vous le souhaitez dans la chaîne des e-mails "à", à condition qu'ils soient séparés par des virgules.
Donc, pour envoyer le même courrier à plusieurs destinataires, procédez comme suit:
$to = '[email protected],[email protected],[email protected]';
drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
Voir aussi Documentation API pour drupal_mail
Selon PHP doc vous ne pouvez envoyer qu'une seule lettre via un appel de la fonction drupal_mail. Donc, vous devriez utiliser cycle. Exemple
$to = array('[email protected]', '[email protected]', '[email protected]',);
foreach ($to as $email) {
drupal_mail('$module_name', $key, $email, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
}
Utilisez hook_mail pour envoyer plusieurs destinataires en passant:
$params = array();
$params['cc'][] = '[email protected]'
drupal_mail('$module_name', 'custom_key', $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
//hook will be the module name
function hook_mail($key,&$message,$params) {
if ($key == 'custom_key') {
$message['headers']['cc'] = $params['cc'];
//.
//.
//.
//.
}
}
Si vous lisez la documentation de la fonction drupal_mail, vous verrez que le paramètre '$ to' accepte une chaîne et non un tableau dans certains formats comme:
Ainsi, nous pouvons facilement convertir votre $ en tableau au format requis en utilisant la fonction imploser et donc vous devrez envoyer un e-mail à plusieurs destinataires en une seule fois. Voici le code:
$to = array('[email protected]', '[email protected]', '[email protected]',);
//To change array('[email protected]', '[email protected]', '[email protected]',) -> '[email protected], [email protected], [email protected]' use implode
$to_str = implode(",", $to);
drupal_mail('$module_name', $key, $to_str, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);