• ベストアンサー

mail関数を使うと遅いので

PHP初心者です。よろしくお願いします。 現在、予約メールシステムを構築しています。 PHP+MySQLです。(smtpはpostfixです) 1日一回、メールアドレス、件名、本文、時間を格納したTBLを作成し、 メール送信するPHPを5分毎にcronで動かしています。 メール送信PHPは 該当する時間のレコードを抽出してmail関数を使い送信しているのですが 1秒で5件しか送信されません・・・ 質問1 mail関数だとこんなものなのでしょうか?(時間がかかるのですか?) 質問2 短時間で大量のメールを送信する場合、どのような方法があるのでしょうか? 以上、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • goojovi
  • ベストアンサー率100% (1/1)
回答No.2

同じようなシステムを以前構築したことがあります。 送信したいメールは一度に数千件でしたが、これを短時間に一気に流してしまうとスパムメールと判断されてしまった事がありました。 結局、ゆっくり処理させてサーバータイムアウトしないようにメールを小分けにしながら送信させましたが、1秒間に5件くらいというのは妥当なような気もします。 (私もNo.1の方がおっしゃるようにsystem()使いました。)

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>1日一回、メールアドレス、件名、本文、時間を >格納したTBLを作成し、メール送信するPHPを >5分毎にcronで動かしています。 1日1回しか更新しないのに5分ごとにメールを 送信するのですか?1日1回だけメールをすれば よいのでは? それはさておき、メールの容量しだいなので、1秒 5件が送信できないのは果たしてすくないのか どうかは微妙ですね。かなり十分な量のようにも 感じますが。 メールを送るだけならsystem()系の関数で、 コマンドラインで処理を流してしまうという手も 考えられるので実験してみる価値はあるかもしれ ませんね。

jojo12345
質問者

お礼

>1日1回だけメールをすればよいのでは? 言葉足らずですみません・・・ メール作成条件の入ったTBLより翌日送信する(送信時間は0:00~23:55)メールだけを作成するのが、一日1回です。 >かなり十分な量のようにも感じますが これも説明不足ですみません 1回の送信に集中することを想定して、最大1万件は1回のcronで処理させる見積もりでした。 system()調べてみます。 お返事、ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A