1

ニュースレター システムを作成しましたが、私の質問は次のとおりです。そのメールを何百ものメール アドレスに送信する必要があることを考えると、コードをどのように記述すればよいでしょうか。

ホスト管理者と話し合ったところ、1 分間に 6 通を超えないようにメールを 1 通ずつ送信するように言われました。

$Timeout プロパティを使用できますか? もしそうなら、どのように?

ありがとう。

4

2 に答える 2

3

メールを 1 つずつ送信する必要がある場合 (BCC を使用する代わりに)、データベース キューを使用して、1 分間に 6 メールのみを送信するという制限を尊重します (最終的にどのソリューションを実際に使用するかに関係なく)。メールを送信します)。

たとえば、受信者、件名、メール本文、lastsenddate、timessent、およびステータスを含むデータベース テーブルがあるとします。

送信するすべてのメールをデータベースに保存してから、1 分に 1 回実行される cron ジョブを設定し、キューに送信待ちのメールがまだあるかどうかを確認します (例: status = "unsend")。次に、キューから最大 6 (または制限が何であれ) のメールを選択し、それらを送信し、ステータスを「send」に設定します (そして、「timessent」を増やし、「lastsenddate」を実際の時間に設定します。のように)、すべてのメールが送信されるまで次の cronjob を待ちます。

このようにして、いくつかの利点があります。

  1. あなたはあなたの分ごとの制限を尊重することができます
  2. すべてのメールをデータベースに保存し、後で関連付けることができます (たとえば、先週の金曜日に送信したメールの数とその内容を調べたり、特定のアドレスが処理されたかどうか、いつ、何回処理されたかを調べたりすることができます)。メールを一度も受け取っていないと誰かが主張している場合 / またはメールが多すぎる場合)
  3. メールステータスを追跡することで、たとえば、メールが戻ってきた場合にメールステータスを「バウンス」に設定するバウンスハンドラーを実装できるため、しばらくしてからメールの再送信を開始し、「」を返したアドレスに到達できます。メールボックスがいっぱいです」-メッセージは初めて
  4. メールをデータベースに保存することで、データベースフィールド「starttime」を追加して「遅延メールサービス」をセットアップし、送信スクリプトにこの日付を尊重させることもできるので、春にクリスマスメールをすでにキューに入れることができます:)
于 2010-02-19T09:25:58.373 に答える
0

Pear Mail を使用すると、PHP から割り当てられた人数に電子メールを送信できます。

http://pear.php.net/package/Mail/

于 2010-02-19T01:14:06.813 に答える