私は購読モジュールを作成しているので、いくつかのアドバイスが必要です。そして私は非常に多くの電子メールのリストを持っています。たとえば、1052通の電子メールを考えてみましょう。そして、私はこのようなコードを持っています:CodeIgniter 3で適切な方法で多くのユーザーに電子メールを送信するにはどうすればいいですか
$email_list = $this->getClientEmails(); //all email for now returns 1052 valid emails
$valid_email = array();
$invalid_email = array();
if(count($email_list) > 0) {
for($x = 0; $x < count($email_list); $x++) {
if(valid_email($email_list[$x]['email'])) {
$valid_email[] = $email_list[$x]['email'];
}
//get all invalid emails
/*else {
$invalid_email[] = array(
'id' => $email_list[$x]['id'],
'email' => $email_list[$x]['email']
);
}*/
}
}
$email_string = implode(',', $valid_email);
$this->email->set_mailtype("html");
$this->email->from($from, 'Sample Admin');
$this->email->to($email_string); //send an email to 1052 users
$this->email->cc('[email protected]');
$this->email->subject($subj);
$this->email->message($content);
$send_mail = $this->email->send();
if($send_mail) {
fp('success');
} else {
fp('failed');
}
私はこのような電子メールを送信すればいいですか?または、別のユーザーに電子メールを送信するためのループを作成する必要がありますか?私は黙示された文字列を使用しません。私は毎週1回送信します。メールの送信が突然途中で止まったら、どうすればいいですか?もう一度やり直す必要がありますか?または、電子メールが送信されたかどうかを更新する列をテーブルに作成する必要がありますか?
私はこれについていくつかアドバイスをいただけますか?これで全部です、ありがとう。
私の問題についてのあなたの有益な応答をありがとう。私はcronの仕事をしようとします。 (私はまだcronものについて新しいです...)。ところで、私は自分の問題についての記事を見つけました。あなたはこれを見てみることはできますか?http://stackoverflow.com/questions/21447471/how-to-send-emails-in-large-quantities-with-php-script-and-cronjobs – Jerielle
@Jerielleその質問は閉じているので私はそこに答えることができない。とにかく、このソリューションはかなり単純です。私はキューを作ったと言った。今、cronとmysqlを仮定すると、送信する必要があるすべてのメールを含むsqlのテーブルを作成します。 1時間ごとに呼ばれるPHPでcronスクリプトを作成します。テーブルから100を選択し、メールを送信して100行を削除します。これにより、1時間に100通のメールが送信されます。私はそこにブラウザについて何か気づきました、あなたはcronスクリプトを実行するためのオープンブラウザは必要ありません:)背景で実行します。 – georoot
もう一度ありがとう。私はあなたのアプローチをしようとします。 :) – Jerielle