私は最初のプロジェクトをPHPで開発しており、新しいものです。昨日、私はすべてのサイトメンバーに新しい投稿の電子メール通知を送信する機能を作成する必要がありました。私は機能を作りましたが、どれくらい良いのか分かりません。PHPを使用してバルク電子メールを送信するには?
ポストを作成した後、私はSQLですべてのサイトのメンバーを選択 -
「をdb.php」を含みます。
$query = "SELECT * FROM user";
$runQuery = mysqli_query($db, $query);
これは私にすべてのサイトメンバーを与えます。私は、各メンバーの電子メールIDを持っている。この方法を
while($users = mysqli_fetch_assoc($runQuery) {
$email = $users['email'];
}
- それから私は、配列をループして、このような各メンバーの電子メールIDをつかみました。今ループで、mail()関数を使用して各サイトメンバーに電子メールを送信できます。
より良いコードを書くために、別のドキュメントに電子メールコードを送信し、 'include()'関数を使用してリンクしました。このように -
while($users = mysqli_fetch_assoc($runQuery) {
$email = $users['email'];
include "send_email.php";
}
どこのメールファイルは、$ヘッダ、$ EMAIL_SUBJECT、$ email_bodyと、このループから来ている$の電子メールを持って送ります。したがって、ループが実行されるたびに、新しい電子メールIDが作成され、その電子メールIDにメールが送信されます。
このコードは、サイトのメンバーが少なくなるまで、プロダクション(hostgator hosting)であっても、自分のlocalhostで動作します。しかし、私のライブサイト(メンバーが70人を超えています)でテストしたところ、ページは少なくとも10秒間続き、「ページは機能していません」というエラーが返されました。
ここで実際に何が起こっていますか?より多くのユーザーに電子メールを送信できないのはなぜですか?
はライブサーバー上でphpメール設定ですか?サーバログを見ることなく、デバッグするのが非常に難しい。しかし、そのようなファイルを含めても、「より良いコードを書いている」ことは間違いありません。メーラークラスを構築して使用する方が良いでしょう。 – DevDonkey
はいphpメールが設定されています。私はいくつかのメンバーに電子メールを送信したと言ったが、70人以上のユーザーを回覧したときに失敗した。 – Sandy