2013-07-15 20 views
7

私は自分のウェブサイトにCodeigniter 2を使用しています。クライアント(gmail、hotmail、..)上の複数のユーザーに電子メールを送信すると、詳細のすべてのアドレスが表示されます。受信者アドレスだけを表示するためにアドレスを非表示にするにはどうすればいいですか?codeigniterで複数のメールを送信

おかげで

答えて

17

使用BCCは、次のようにバッチ電子メールを送信します

function batch_email($recipients, $subject, $message) 
{ 
    $this->email->clear(TRUE); 
    $this->email->from('[email protected]', 'Display Name'); 
    $this->email->to('[email protected]'); 
    $this->email->bcc($recipients); 
    $this->email->subject($subject); 
    $this->email->message($message); 

    $this->email->send(); 

    return TRUE; 

} 

$の受信者は、カンマ区切りのリストや配列でなければなりません

それはあなたの電子メールが、他のすべてのコピーを取得することを意味します受信者はbccになりますので、お互いのアドレスは表示されません。

+11

私はいつも質問に答えるわけではありませんが、投稿したユーザーは助けてくれれば教えてくれません:-( – whispersan

+0

ありがとう@whisperson Sir!..これで私は時間を節約できます... 〜のような魅力! –

+0

私は、コードジェネレータのbccに関する包括的なチュートリアルを見つけることができたらいいと思いますが、私はbccがうまく動作しないように見えて、カンマ区切りのリストと配列を試しました。 – TARKUS

6

私はあなたがこれは一度にすべての受信者に郵送されます

$this->email->to('[email protected], [email protected], [email protected]'); 

のように、単一の方法ですべての受信者を割り当てていると思います。以下のように、ユーザごとに個別に郵送し、すべての受信者を示す防ぐために、ここで

foreach ($list as $name => $address) 
{ 
    $this->email->clear(); 
    $this->email->to($address); 
    $this->email->from('[email protected]'); 
    $this->email->subject('Here is your info '.$name); 
    $this->email->message('Hi '.$name.' Here is the info you requested.'); 
    $this->email->send(); 
} 

$listは、受信者の名前と電子メールIDの配列が含まれています。各反復の始めに必ずclear()を使用してください。

+0

受信者ごとにメールを送信する必要はありません。 – TARKUS

関連する問題