専用IPをオーバーロードせずに1つのphpスクリプトリクエストから約3000以上のメールを送信できる方法はありますか...最大は1時間あたり500になりますか?
あなたが私を取得しない場合..ここに詳細があります:)
PHPのmail()関数を介して専用IPを介して1時間に500通のメールしか送信できません。たとえば、メールアドレスから取得した3000行のメールを送信する方法はありますが、mail()関数をずらして送信することができます。 1時間あたり500...
すでにありがとう!
2つのテーブルを作成します。1つは電子メールメッセージ用で、もう1つは受信者のリスト用です。次に、cronによって実行されるスクリプトを作成します。このスクリプトは、メッセージテーブルに新しいメッセージがあるかどうかを確認し、ある場合は、次の受信者のセットに電子メールのバッチを送信します。メール送信後に各受信者にマークを付けます。
次に、クライアントがメッセージを作成し、ユーザーがメッセージを準備完了としてマークしたら、受信者をメッセージに添付するためのWebインターフェイスを作成します。これにより、cronジョブがメッセージを取得して処理します。
送信するメッセージがない場合、cronジョブは何もしません。
呼び出しの合間にスリープするか、すでにデータベースにある場合は、呼び出しがいつ送信されたかを示すフィールドをそこに配置します。次に、送信されていないものを選択し、そこから開始します。
DBにフィールドを配置して、最後の電子メールが各ユーザーにいつ送信されたか、およびそれがどの電子メールであったかを示します。また、送信した各電子メールと、それがまだすべてのユーザーに送信されているかどうかを示す別のDBテーブルがあります。
User Table:
Id, UserName, Email, etc, DateTimeOfLastEmail, LastEmailId
Email Table:
Id, EmailSubject, EmailContent, DateTimeSent, SentToAll(True/False), DateTimeOfFinish
すべての答えをありがとう!私が見つけた最善の方法は、実際には、400通のメールをテストしたときにsleep()を使用して呼び出しの間にsleep()を実行することでした。これには、17秒かかりました:)
ユーザーが450を超える制限を送信する可能性は低いですが、もしそうなら、while()が450を超える行があるかどうかのチェックを終了する前に、ifステートメントがあります。そうであれば、それぞれの間にスリープします...これ面倒なデータベースなしで動作します:)
ありがとう!
いくつかの計算を行った後、8.3秒(498 / hr)ごとに電子メールを送信できますが、問題は解決しません。別のアプローチは、DBを使用し、500をクエリして、CRONジョブに1時間ごとにスクリプトを実行させることだと思います。
したがって、DBテーブルでは、電子メールの送信後にスクリプトでフィールドを更新して、次のcronジョブがクエリを実行し、送信する必要のある次の500の電子メールを取得することができます。