2017-10-02 2 views
0

J'ai un problème lors de l'envoi de plusieurs e-mails cc séparés par un symbole de virgule en utilisant PHPMailer. . J'utilise PHP 7.PHPMailer envoie plusieurs adresses e-mail cc séparées par le symbole coma

J'ai ces données dans ma base de données mysql contient plusieurs adresse e-mail dans un seul compte d'utilisateur séparés par la virgule (,).

enter image description here

Je suivent déjà la réponse de cette question here, mais sa ne fonctionne pas. Les e-mails ne peuvent être envoyés qu'à [email protected] [email protected] n'a reçu aucun courrier.

J'ai essayé de echo var_dump (maildbs);

sortie affichée sans coma. .

[email protected]@mail.com 

Voici mon code PHP. .

sendmail.php

<?php 
    $connect  = mysqli_connect("", "", "", ""); 
    global $connect; 
    if(isset($_POST['Submit'])){ 
     $staffname = $_POST['staffname']; 
     $sql = "SELECT * FROM table WHERE staff_name ='$staffname'"; 
     $get = mysqli_query($connect,$sql); 
     if($get && mysqli_num_rows($get) > 0) 
     {    
      while($row = mysqli_fetch_assoc($get)) 
      { 
       $maildbs = explode(',',$row["email_address"]); 
       foreach($maildbs as $maildb){ 
        date_default_timezone_set('Etc/UTC'); 
        require_once '../PHPMailerAutoload.php'; 
        $mail = new PHPMailer; 
        $mail->isSMTP(); 
        $mail->SMTPDebug = 2; 
        $mail->Debugoutput = 'html'; 
        $mail->Host = "host"; 
        $mail->Port = 25; 
        $mail->SMTPAuth = false; 
        $mail->setFrom('[email protected]', 'Sender'); 
        $mail->addAddress('[email protected]','receipent'); 
        $mail->addCC($maildb); 
        $mail->Subject = 'PHPMailer SMTP without auth test'; 
        $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); 
        $mail->AltBody = 'This is a plain-text message body'; 
        $mail->Body = 'body content'; 
        $mail->addAttachment('images/phpmailer_mini.png'); 
        if (!$mail->send()) { 
         echo "Mailer Error: " . $mail->ErrorInfo; 
        } else { 
         echo "Message sent!"; 
        }     
       } 
      } 
     mysqli_free_result($get); 
     } 
    } 
?> 
<!DOCTYPE html> 
<html><title>Test Email</title></head> 
<body> 
    <table> 
     <form action="sendmail.php" method="POST"> 
      <tr> 
       <td>Staff Name :</td> 
       <td><input type="text" name="staffname" value="" ></td> 
      </tr> 
      <tr> 
       <td></td> 
       <td><input type="submit" name="Submit" value="send email"></td> 
      </tr> 
     </form> 
    </table> 
</body> 
</html> 

apprécierions si quelqu'un peut aider.

+0

Cela est terriblement inefficace. Regardez [l'exemple de liste de diffusion fourni avec PHPMailer] (https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) pour savoir comment le faire mieux. Ajoutez une adresse CC ou BCC à la fois en utilisant 'addCc()' et 'addBcc()'. Notez également ce que 'clearAddresses()' fait. – Synchro

+0

Merci @Synchro. – AlotJai

Répondre

0

utilisation exploser php function

   $email = explode(',', $toEmail); 
       for ($i = 0; $i < count($email); $i++) { 
        $mail->addAddress($email[$i], 'recipient '); 
       } 
       if ($ccEmail != null) { 
        $emailCC = explode(',', $ccEmail); 
        for ($i = 0; $i < count($emailCC); $i++) { 
         $mail->addCC($emailCC[$i]); 
        } 
       } 
       if ($ccBCC != null) { 
        $emailBCC = explode(',', $ccBCC); 
        for ($i = 0; $i < count($emailBCC); $i++) { 
         $mail->addBCC($emailBCC[$i]); 
        } 
       } 
+0

Ok. laissez-moi essayer d'abord. – AlotJai

+0

Désolé. cela ne fonctionne pas – AlotJai

+0

quelle erreur de type a eu? –