J'utilise phpmailer pour envoyer des e-mails, et cela fonctionne, les destinataires reçoivent le courrier, sauf que les détails bcc et cc ne montrent pas le courrier. Quelqu'un peut suggérer une solution à cela. le code est
require_once("PHPMailer_v5.1/class.phpmailer.php");
require_once("PHPMailer_v5.1/language/phpmailer.lang-en.php");
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->SMTPAuth = true;
$mailer->SMTPSecure = "tls";
$mailer->Host = 'smtp.gmail.com';
$mailer->Port = 587;
$mailer->Username = "myuserid";
$mailer->Password = "mypassword";
$mailer->FromName = $fromname;
$mailer->From = "myuserid";
$mailer->AddAddress("[email protected]",$toname);
$mailer->Subject = $subject;
$mailer->Body =$content;
$mailer->AddCC("[email protected]", "bla");
$mailer->AddBCC("[email protected]", "test");
if(!$mailer->Send())
{
echo "Message was not sent";
}
else
echo "mail sent";
Utilisé comme
$mailer->AddBCC("[email protected]", "test");
$mailer->AddCC("[email protected]", "bla");
Vous ne voyez jamais les détails de BCC. C'est pour ça qu'ils sont des détails BCC. Même le destinataire d'un BCC ne verra pas son propre nom avec les destinataires.
PS: Vous avez remarqué que vous avez écrit addBCC
au lieu de AddBCC
(majuscule A
)?
De la référence de la fonction phpMailer:
Ajoute une adresse "Cci". Remarque: cette fonction fonctionne avec le mailer SMTP sur win32, pas avec le mailer "mail".
Cela pourrait être à l'origine de votre problème.
PHPMailer n'envoie pas CC ou BCC
Vieille question, mais j'ai fini par chercher une réponse. Je viens d'apprendre ailleurs que ces fonctions AddCC et AddBCC ne fonctionnent qu'avec Win32 SMTP
Essayez d'utiliser:
$ mail-> addCustomHeader ("BCC: [email protected]"); Voir http://phpmailer.worxware.com/?pg=methods
J'espère que cela aide quelqu'un, bravo!
C'est addBCC
$email->addBCC('[email protected]', 'My Name');
Voir PHPMailer.php (version actuelle 6.0.5) sur la ligne 934 ( https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php#L934 ):
/**
* Add a "BCC" address.
*
* @param string $address The email address to send to
* @param string $name
*
* @return bool true on success, false if address already used or invalid in some way
*/
public function addBCC($address, $name = '')
{
return $this->addOrEnqueueAnAddress('bcc', $address, $name);
}
le Cci ne se montrera jamais; uniquement TO et CC
BCC = copie carbone aveugle
Voici un exemple de travail de la dernière version, et sur Office 365, je l'utilise pour envoyer des e-mails à partir de dossiers partagés ...
<?
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require_once('./phpmailer/Exception.php');
require_once('./phpmailer/PHPMailer.php');
require_once('./phpmailer/SMTP.php');
//* Working Example As Of 09/21/2019 - Sends From Shared Mailbox With Mailbox Member
function SendO365EmailTLS($options)
{
$from = isset($options['from']) ? $options['from'] : false;
$recipients = isset($options['recipients']) ? $options['recipients'] : false;
$ccRecipeints = isset($options['ccrecipients']) ? $options['ccrecipients'] : [];
$bccRecipients = isset($options['bccrecipients']) ? $options['bccrecipients'] : [];
$attachments = isset($options['attachments']) ? $options['attachments'] : [];
$credentials = isset($options['credentials']) ? $options['credentials'] : false;
$subject = isset($options['subject']) ? $options['subject'] : '';
$body = isset($options['body']) ? $options['body'] : '';
if(!$from) throw new Exception('Cannot send email with blank \'from\' field');
if(!$recipients) throw new Exception('Cannot send email, no recipients specified!');
if(!$credentials) throw new Exception('Cannot send email, credentials not provided!');
$mail = new PHPMailer;
foreach($recipients as $recipient) $mail->addAddress( $recipient[ 'email'], $recipient['name']);
foreach($ccRecipeints as $ccRecipient) $mail->addCC( $ccRecipient[ 'email'], $ccRecipient['name']);
foreach($bccRecipients as $bccRecipient) $mail->addBCC( $bccRecipient['email'],$bccRecipient['name']);
foreach($attachments as $attachment) $mail->addAttachment($attachment[ 'path' ], $attachment['name']);
$mail->setFrom($from['email'], $from['name']);
$mail->Username = $credentials['username'];
$mail->Password = $credentials['password'];
$mail->Host = 'smtp.office365.com';
$mail->Subject = $subject;
$mail->SMTPSecure = 'tls';
$mail->Body = $body;
$mail->SMTPAuth = true;
$mail->isHTML(true);
$mail->Port = 587;
$mail->isSMTP();
$success = $mail->send();
return $success;
}
// $options = ['from'=> ['email'=>'', 'name'=>''],
// 'recipients'=> [['email'=>'', 'name'=>'']],
// 'ccrecipients'=> [['email'=>'', 'name'=>'']],
// 'bccrecipients'=>[['email'=>'', 'name'=>'']],
// 'attachments'=> [['path'=>'./attachments/file1.jpg','name'=>'1.jpg'],
// ['path'=>'./attachments/file2.jpg','name'=>'2.jpg'],
// ['path'=>'./attachments/file3.jpg','name'=>'3.jpg']],
// 'credentials'=> ['username'=>'','password'=>''],
// 'subject'=> 'Email Subject Line',
// 'body'=> '<h1>Email Body</h1><p>HTML!!!</p>'];
// $success = SendO365EmailTLS($options);
// echo $success ? 'Email Sent':'Email Not Sent';
// die();