PHPを使ったメールの一斉送信についての質問です。


約10,000件へ送り先の名前など、一部内容の異なるメールを一斉送信したいと考えています。
データベースからメールアドレスや名前を取得して送信を試みてみましたが途中で
ブラウザからphpファイルをダウンロードするようなエラーになってしまいました。

while($id = mysql_fetch_row($result)){
for($i=0; $i < $ncols; $i++){
.........
mb_send_mail(....);
}
}

タイムアウトエラーだと思ったので「set_time_limit(0);」を記述しましたが効果なしです。
10,000件くらいならと甘く考えていたようです。
サーバはさくらインターネットのビジネスプロを利用しています。

何か良い方法がございましたらご教授よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/07/24 20:19:41
  • 終了:2010/07/25 08:24:41

回答(2件)

id:tasklight No.1

tasklight回答回数323ベストアンサー獲得回数402010/07/24 21:57:16

ポイント35pt

禁止されているスパムメール・迷惑メールの例

明らかに不特定多数に向けて送信されたと見られる、商品・ウェブサイトなどの広告・宣伝・勧誘を目的としたメール

http://support.sakura.ad.jp/contact/spam/

id:m-nisi No.2

m-nisi回答回数159ベストアンサー獲得回数32010/07/25 00:12:25

ポイント35pt

ブラウザ経由ではなく、

teratermのようなコンソールでログインして実行すれば

タイムアウトなどは関係無くなるのではないでしょうか?

あと、個人的には長時間MySQLに接続しておくのは気が引けるので

while($id = mysql_fetch_row($result)){

$tmp[] = $id;

}

mysql_close();

foreach ($tmp as $value) {

.........

mb_send_mail(....);

}

}

というようにします。

URLはダミーです。

http://www.yahoo.co.jp/

id:clab_yasu

有益な情報ありがとうございました。

2010/07/25 08:22:24
  • id:ken3memo
    さくらインターネット メール 一斉送信
    で検索すると
    http://support.sakura.ad.jp/support/vd/manual/tech/server/index.html#kinshi
    >禁止プログラムの動作を発見した場合、実行プロセスの強制終了・CGI利用権限の停止・
    監視プログラムにひっかかって、強制終了されているとかは無いですよね。妄想・想像力ありすぎかなぁ。
    500件単位に分けて実行するとか?でも短時間に約10,000件は正規でも<b>誤認逮捕</b>されそうかなぁ、、と個人的な感想です。
  • id:clab_yasu
    早速ありがとうございます。
    教えていただいたページに「ダイレクトメール・メーリングリスト・メールマガジンを含むメールの一斉送信」は駄目と書いていますね...。
    誤認逮捕は避けたいです(笑)
  • id:tezcello
    ken3memo さんご提示のURLは質問者さんのご契約プランのではなさそうですね。
     (バーチャルドメインのもので、新規申込受付終了とのこと)
    レンタルサーバ用のはこちらのようです。
    http://support.sakura.ad.jp/support/manual/rs/tech_cgi.shtml
  • id:clab_yasu
    tezcello 様
    わざわざお調べいただきありがとうございました。
    現在、サーバに負荷がかからない方法にてプログラムを書き直しています。
    送信時間が長くなってしまいそうですが、安全に送信できそうです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません