C'est donc mon code où j'envoie le même email à 3 utilisateurs différents
$mailer->sendMail($emailfrom, $sitename, '[email protected]', $subject, $message, 1);
$mailer->sendMail($emailfrom, $sitename, '[email protected]', $subject, $message, 1);
$mailer->sendMail($emailfrom, $sitename, '[email protected]', $subject, $message, 1);
Et c’est ce que je vois dans mon gmail (mon email est le dernier [email protected]
):
Mais je ne veux pas que tous les destinataires successifs voient à qui l'e-mail a été envoyé auparavant. Comment peut-il être résolu? Je ne trouve rien sur la page API de JMail:
https://api.joomla.org/cms-3/classes/JMail.html
Utiliser Joomla 3.5.1
Comme vous pouvez le voir sur la page de référence de l'API, la fonction sendMail()
a un paramètre $bcc
:
sendMail (chaîne $ from, chaîne $ fromName, $ destinataire $, chaîne $ sujet, chaîne $ corps, booléen $ mode = faux, mixte $ cc = null, mixte $ bcc = null, mixte $ attachment = null, mixte $ replyTo = null, mixte $ replyToName = null)
En outre, si vous envoyez le même courrier électronique à 3 destinataires différents, vous n'avez pas besoin d'utiliser la fonction sendMail()
3 fois, mais définissez simplement un array
de destinataires.
Essayez ce qui suit:
$to = array(
'[email protected]'
);
$bcc = array(
'[email protected]',
'[email protected]'
);
$mailer->sendMail($emailfrom, $sitename, $to, $subject, $message, 1, null, $bcc);
Vous pouvez essayer deux solutions parmi les suivantes.
$mailer
Et en utilisant le code suivant -JFactory::getMailer()
JFactory::getMailer()->sendMail($emailfrom, $sitename, '[email protected]', $subject, $message, 1);
JFactory::getMailer()->sendMail($emailfrom, $sitename, '[email protected]', $subject, $message, 1);
JFactory::getMailer()->sendMail($emailfrom, $sitename, '[email protected]', $subject, $message,1);`
Reportez-vous pour plus de détails:
https://developer.joomla.org/joomlacode-archive/issue-31986.html
$mailer
$recipients = array('email1','email2','email3' );
for($i=0;$i<3;$i++){
$mailer = JFactory::getMailer();
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setSubject('Your subject string');
$mailer->setBody($body);
$mailer->addRecipient($recipients[$i]);
$mailer->setSender($sender);
$send = $mailer->Send();
}
Reportez-vous pour plus de détails:
https://developer.joomla.org/joomlacode-archive/issue-29095.html
Joomla Mailer étend PHPMailer, vous pouvez donc ajouter cette ligne de code après send ()
$mailer->clearAllRecipients();