web-dev-qa-db-fra.com

Phpmailer AddBcc ne fonctionne pas

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";
17
Vidya L

Utilisé comme

$mailer->AddBCC("[email protected]", "test");
$mailer->AddCC("[email protected]", "bla");
34
Sujathan R

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

15
GolezTrol

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.

10
panepeter

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!

6
i_a

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);
}
4
Herr Barium

le Cci ne se montrera jamais; uniquement TO et CC

BCC = copie carbone aveugle

4
Dan Mihail Matei

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();
0
Paul Ishak