30秒の実行時間でどれだけのmail()関数を使用できるでしょうか?

StackOverflow https://stackoverflow.com/questions/1670767

  •  13-09-2019
  •  | 
  •  

質問

ニュースレター購読者に電子メールを送信するページを作成する必要があります。チャンネル登録者数は14000人を超えています。phpのmail()関数を使ってメールを送りたいと思っています。しかし、php の最大実行時間の 30 秒以内にすべての購読者に電子メールを送信できないのではないかと心配しています。購読者にテストメールを送信して、どれだけのメールを送信できるかをテストすることはできません。そこで、30秒のmax_execution_time制限内でmail()関数を使用してどれだけの電子メールを送信できるかを知りたいです。答えていただければ大変助かります。

別の質問-mysqlの実行時間もphpでカウントされますか?

Apacheバージョン2.2.13(UNIX)PHPバージョン5.2.11

役に立ちましたか?

解決

PHPのmax_execution_time設定はカスタマイズ可能です。 30秒がデフォルトですが、あなたはまったく実行時間の制限のために秒を0するように設定することができます。 は、set_time_limit()に使用します。

set_time_limit(0);

あなたがこれを行う場合は、すべてのあなたの電子メールを送信することができる必要があります。

毎秒同じメールサーバに複数の電子メールを送信するには注意してください。あなたはブラックリストに取得する必要はありません。

他のヒント

あなたはcronジョブからこれを実行するか、またはバックグラウンドタスクを起動または他の方が適しバッチジョブに何かを使用する必要があります。

あなたのメールサーバが十分に高速である場合は、30秒で14000通のメールを出すかもしれませんが、あなたは、いくつかのより多くの加入者を取得するときに何が起こると、それが正常に動作を停止する?

おそらく、あなたは自分の電子メールは、バックグラウンドタスクによって送信されたとして、その後フラグをリセットし、各ユーザーのデータベースにフラグを設定することができます。これは、メールサーバーに問題がある場合はその上の重複を避け、するのに役立ちます。

に依存する多くの変数を単一の答えはできません。要因

  1. の速のCPU
  2. 帯域からの送信システムのMTA
  3. のMTAの能力を高める電子メールは受け付け

唯一の方法を見出してみました。

私はこの正確な問題が私の。このセクションの分離のメール送信から実際のサイトです。

私はコードシェイクスピアの"マクベス"というメールを送り.うした分子を鋳型とした電子メール、そして店舗のデータベースのメールキューに挿入します裏に終わったのか記憶になる仕事と呼ばれるメーラーのスクリプト毎にX秒です。スクリプトのデータベースのキューのための電子メール、ヘX番号からキューにしようとするの送信(発注によるタイムスタンプにしよう試みます。ないことを前提として誤ったスローされ、スクリプトがマークをメッセージとして送信されます。次のステップにするパージすべてのメールからキューに送信された以上の古X日間保管したログイン).

いることがあります。

真剣に、通常のメールアプリから同じメールを 10 人に送信したい場合、通常は同じメールを 10 通作成しますか、それとも受信者を送信リストに追加してからメールを送信しますか?

編集: 答えが「一度送信する」である場合は、ここでもその方向に目を向けるべきだと思います (複数の受信者に送信する方法についても説明されています) http://www.php.net/mail)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top