2017-01-10 15 views
1

私はメールをトリガーするためにphpメーラーを使用しています。 うまく動作します。しかし、私は2人〜5人の受信者を与え、1人の受信者にしかメールを送信しませんでした。将来的には、私はPHPメーラー複数の受信者

require 'phpmailer/PHPMailerAutoload.php'; 

    $mail = new PHPMailer; 

    //$mail->SMTPDebug = 3;        // Enable verbose debug output 

    $mail->isSMTP();          // Set mailer to use SMTP 
    $mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers 
    $mail->SMTPAuth = true;        // Enable SMTP authentication 
    $mail->Username = 'karthick****@gmail.com';     // SMTP username 
    $mail->Password = '********';       // SMTP password 
    $mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
    $mail->Port = 587;         // TCP port to connect to 

    $mail->setFrom('karth*******@gmail.com', 'A**n'); 

    $addresses = explode(',',$emailM); 
    foreach ($addresses as $address) { 
     $mail->AddAddress($address); 
    } 


$mail->isHTML(true);         

$mail->Subject = 'Need for '.$keyword.''; 
$mail->Body = 'Hi,The Message'; 


if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Qoute has been sent to all the Manufacturers'; 
    echo "$address"; 

} 
+1

以下のように送ることができるということですが、 '$アドレスに電子メールアドレスです'有効ですか?少なくともforeach-loopサイクルごとにデバッグメッセージを追加する必要があります。 – Raptor

+0

あなたは本当にそれを送信するだけですか?最後に '$ address'をエコーし​​ていますが、最後に追加したアドレスだけが含まれますが、メッセージはすべてのアドレスに送信されます(ただし、' addAddress() 'の戻り値を確認する必要があります)それが動作していることを確認してください)。 – Synchro

+0

私は正しい方法でこのことをやっているとは思わない - 最終的に「すべての製造業者」というテキストがあるので、本当に同じメッセージにそれらをすべて追加したいと思うのは間違いない。お互いのアドレスを参照してください)。それぞれ別々のメッセージを送信する必要があります。それを効率的に行う方法については、[PHPMailerで提供されるメーリングリストの例](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps)を参照してください。 – Synchro

答えて

-1

基本的な考え方は、それはそれぞれに異なる接続(オブジェクト)を作る..ですそれを確認してください..私は以下の私のコードを共有している...ほぼ100の受信者に をメールをトリガする必要がありますあなたのメールアドレスがのようにあなたの配列にたくさんある場合は、

require 'phpmailer/PHPMailerAutoload.php'; 

$addresses = explode(',',$emailM); 
    foreach ($addresses as $address) { 
    $mail = new PHPMailer; 

    //$mail->SMTPDebug = 3;        // Enable verbose debug output 

    $mail->isSMTP();          // Set mailer to use SMTP 
    $mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers 
    $mail->SMTPAuth = true;        // Enable SMTP authentication 
    $mail->Username = 'karthick****@gmail.com';     // SMTP username 
    $mail->Password = '********';       // SMTP password 
    $mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
    $mail->Port = 587;         // TCP port to connect to 

    $mail->setFrom('karth*******@gmail.com', 'A**n'); 


     $mail->AddAddress($address); 


$mail->isHTML(true);         

$mail->Subject = 'Need for '.$keyword.''; 
$mail->Body = 'Hi,The Message'; 


if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Qoute has been sent to all the Manufacturers'; 
    echo "$address"; 

} 

UPDATE:

二アイデアは、あなたがた受信者ごとの時間を削除し、新しいものを追加して

require 'phpmailer/PHPMailerAutoload.php'; 

    $mail = new PHPMailer; 

    //$mail->SMTPDebug = 3;        // Enable verbose debug output 

    $mail->isSMTP();          // Set mailer to use SMTP 
    $mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers 
    $mail->SMTPAuth = true;        // Enable SMTP authentication 
    $mail->Username = 'karthick****@gmail.com';     // SMTP username 
    $mail->Password = '********';       // SMTP password 
    $mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
    $mail->Port = 587;         // TCP port to connect to 

    $mail->setFrom('karth*******@gmail.com', 'A**n'); 

    $addresses = explode(',',$emailM); 
    foreach ($addresses as $address) { 

     // for clear last recipients 

     $mail->ClearAllRecipients() 


     $mail->AddAddress($address); 


     $mail->isHTML(true);         

      $mail->Subject = 'Need for '.$keyword.''; 
      $mail->Body = 'Hi,The Message'; 


     if(!$mail->send()) { 
      echo 'Message could not be sent.'; 
      echo 'Mailer Error: ' . $mail->ErrorInfo; 
     } else { 
      echo 'Qoute has been sent to all the Manufacturers'; 
      echo "$address"; 

     } 

} 
+0

しないでください。それは動作しますが、それは遅く、無駄で非効率です。 – Synchro

+0

いいえ、真ではありません。 PHP Mailerは複数の受信者を同時にサポートできます。 – Raptor

+0

私はそれを知っていた。アドレスを続けて追加して送信すると、受信者のすべての受信者が表示されます –

関連する問題