2017-10-04 8 views
-2

件名と動的メッセージが異なるバルクメールを送信するためのスクリプトを作成しています。私はメールをsedingするためにループとphpメール機能を使用しています。スクリプトを実行すると、すべての電子メールを送信するのに時間がかかり、CPU使用率も高くなります。任意の提案や高速実行し、500 CPUの負荷なしで電子メールを一度に送信する任意のスクリプトを行いますか。 PHPドキュメントからPHPを使用してバルク電子メールを送信する際に問題が発生する

おかげ

+1

あなたはhttps://github.com/PHPMailer/PHPMailerを試しましたか? – Andreah

+0

はい、私はphpmailer、php mail、およびwp_mail関数を使用しましたが、すべてが高いCPU負荷を消費します。 –

+1

一定の規模では、常に別のサービスにその電子メールを送信する必要があります。これは、APIや、データベースやキューイングシステムからのジョブを処理する別のPHPスクリプト、またはその他多数のものになります。基本的には、1通のメールを送信するには時間がかかり、500回を送信するには500倍の時間がかかります。 – iainn

答えて

1

注:これは、メール()関数は、ループ内の電子メールの 大量に適していないことは注目に値します。この関数は、電子メールごとに SMTPソケットを開閉しますが、効率的ではありません。大量のメールを に送信するには、»PEAR :: Mail、および» PEAR :: Mail_Queueパッケージを参照してください。

PHPMailerを使用することをお勧めします。

また、スクリプトを別のスレッドで処理することを検討する必要があります。

1

システムを使用していない場合は、これまでにmailerを使用してソリューションを拡張することはできません。電子メールを特別に送信する時間のかかる処理は、バックグラウンドタスクであり、queueで処理する必要があります。

あなたのアプリが開発の初期段階にある場合は、queue systemというビルドを持つLaravelのようなフレームワークを使用することをお勧めします。私は非常にそれをお勧めします。

これらの記事では、キューシステムを基本的なPHPアプリケーションに組み込む方法を示しています。 @icy2kとして

PHPMailerは作り付けのmail()機能よりも良い選択肢だろう、以下示唆しています。だから、それを指摘するために彼の帽子が。 Laravelを使用する予定の場合は、内蔵の強力なmailerシステムがあります。

関連する問題