これは私のコードで、3人の異なるユーザーに同じメールを送信します
$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);
そして、これは私のGmailに表示されるものです(私のメールは最後のものです[email protected]
):
しかし、私は、すべての連続した受信者に、以前に誰に電子メールが送信されたかを知らせたくありません。どうすれば解決できますか? JMailのAPIページで何も見つかりません。
https://api.joomla.org/cms-3/classes/JMail.html
Joomla 3.5.1の使用
APIリファレンスページでわかるように、sendMail()
関数には_$bcc
_パラメータがあります。
sendMail(string $ from、string $ fromName、mixed $ recipient、string $ subject、string $ body、boolean $ mode = false、mixed $ cc = null、mixed $ bcc = null、mixed $ attachment = null、mixed $ replyTo = null、混合$ replyToName = null)
また、同じメールを3人の異なる受信者に送信する場合は、sendMail()
関数を3回使用する必要はありませんが、代わりに受信者のarray
を定義するだけです。
次のことを試してください。
_$to = array(
'[email protected]'
);
$bcc = array(
'[email protected]',
'[email protected]'
);
$mailer->sendMail($emailfrom, $sitename, $to, $subject, $message, 1, null, $bcc);
_
次の2つの解決策があります。
$mailer
_および次のコードを使用して-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);`
_
詳細については参照してください:
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();
}
_
詳細については参照してください:
https://developer.joomla.org/joomlacode-archive/issue-29095.html
Joomla MailerはPHPMailerを拡張しているため、send()の後にこのコード行を追加できます。
$mailer->clearAllRecipients();