人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでメルマガなどを送る方法についての質問です。
数千件のメルマガをmb_send_mail()関数で送信する際にどのようにするのがよいのでしょうか?
一気に送信しようとすると途中で出来なくなってしまいます。
一応、set_time_limit(0)の状態でやっているのですが、サーバー側で何らかの処理がされえいる模様です。
サーバーは、専用サーバーを使っています。

いろいろ調べた結果、いくつかに分けて送るのが良いとのことですが、具体的な内容はありませんでした。
sleep()関数などで休み休み送信するということなのでしょうか?
それとも送信データの件数を一定に定めて数回に分けて送信したほうが良いのでしょうか?
一定の場合は、どの位の件数がベストなのでしょうか?

上記の内容だけだと情報不足だとは思いますが、とりあえず何を説明すればいよいのかわからない状況なのですいません。
こんな感じですけど、どなたか教えてください。

●質問者: black_kenchan
●カテゴリ:ウェブ制作
✍キーワード:PHP サーバー データ ベスト メルマガ
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● ヨネちゃん
●10ポイント

PHPは通常30秒間でタイムアウトされてしまうのがデフォルトの設定です。

set_time_limit()で延ばせる可能性もあるのですが、

一度に送信する数を300までに留めて、

自動的に作った(コピーのような)別のPHPファイルで続きを送信していけばOKだと思います。


2 ● amber-jack
●10ポイント

詳しく書かれてないので推測ですが、ウエブページ上からメールマガジンの配信プログラムを動かしてます?

多数の配信になってくるとウエブからでも出来なくないですが、

専用サーバを使われているのであれば、コマンドライン上から操作するほうが良いと思います。

環境によって出来る・出来ないがありますが…

もう少し詳しくサーバの状況、現在の状況(どういう流れでメールを配信してるか)

を記入して頂けると詳しくアドバイス出来ると思います。

◎質問者からの返答

現在のサーバーの状況とは?

なのですが、どういう風に答えれば良いかわかりません。

すいません…

こういう場合は、何を説明すればよいですか?


3 ● amber-jack
●10ポイント

サーバの状況ですが、PHPがコマンドラインから使用出来るかどうか?がまず知りたいですね。

専用サーバというのは、レンタルのサーバでしょうか?

SSH、TELNETなどでログインは可能ですか?

cronの設定などは行った事があるでしょうか?

◎質問者からの返答

PHPがコマンドラインから使用出来るか?⇒ コマンドラインが分からないので使用できるか分かりません…すいません…

どこのレンタルサーバー? ⇒ マイティーサーバーです。

SSH、TELNETなどえログイン可能か? ⇒ 一応出来ますが、余り詳しくないです…

CRONの設定などの使用経験 ⇒ あります。

上記のような状況です。宜しくお願いします。


4 ● b-wind
●10ポイント

最近は spam 対策のため、同時(または一定時間内)の送信数を制限しているところも多く出ているようです。

Mail_Queue のクラス概要

対策というわけではないですが、数千件の処理というのも含めるといったんキューに入れて別スクリプトから

順次送信していく形の方が望ましいと思います。

◎質問者からの返答

キューですか、検索してるときに何回かみた言葉なのですが、意味が分からず自分には関係ないと思いスルーしてました。

勉強してみます。

有難う御座いました!


5 ● vector
●10ポイント

メルマガのシステムを作った時の送信間隔は1秒に1通でした。

# つまりsleep(1);

この理由は、相手が携帯でしたのでキャリアのサーバにspamと判定されないようにする為でした。

# spam認定はサーバの設定によって違っているので、1秒空ければまず大丈夫だろうという憶測です。


WEB上での送信の場合、PHPの実行時間が設定されていますので20秒ほどでリダイレクトするしかありません。

簡単に言えば

while (送信完了まで) {
 送信;
 if (20秒経過) {
 リダイレクト;
 }
}

と言った感じです。


コマンドライン(SSH上での操作もしくはcronによる操作)の場合、タイムアウトはありませんのでリダイレクトを行う必要はありません。

◎質問者からの返答

参考になりました!!

1秒に1通っって…大変なんですね。メルマガも。

ちょっと、甘く見てました。

上記で教えてくださったWhile文のリダイレクトというのが、分からないのですが具体的にどんな感じなのですか?


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ