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

PHPでメール送信のテストをしています。

数千件のメールを一括配信することを想定し、自分宛のメールアドレスにmb_send_mailで送信しています。

しかし、自分が利用しているメールアドレスとはいえ、一度に数千?1万件のメールを
受信しようとすると、遅延が発生します。
(おそらくメールアドレスを設定しているサーバが制御しているのかも知れません)

過去にメール配信について質問した際、sleepなどを使って間隔を開けて送信することを
アドバイスいただきましたが、それをしても遅延が発生します。
その為、正確な配信速度が測れず、どの件数までを配信可能基準とするか決められません。

そこで質問ですが、どういう環境・やり方で開発テストするのが良いのでしょうか?
スパム・迷惑メール扱いにならずにテストできる方法を教えて下さい。
(現在は、さくらインターネットの共有サーバとメールアドレスでテストしています)

●質問者: kt26
●カテゴリ:ウェブ制作
✍キーワード:PHP さくらインターネット アドバイス サーバ スパム
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● sterwars22
●0ポイント

他人の迷惑になるので、専用サーバーでやってください。

◎質問者からの返答

ひと言レスありがとうございます。


2 ● b-wind
●45ポイント

「どういう方法で」となるとテスト用の環境を用意するほか無いと思いますが。

限界性能を調べるなら専用の環境にして性能劣化の要因をすべて排除するしかないですから。

現在は、さくらインターネットの共有サーバとメールアドレス

同サーバーの他のユーザーの影響が受けるので共有サーバーだと「テスト」には向きません。

取りあえずは、VMWare や VirtualPC で仮想サーバーを立てるだけでもだいぶ違うと思います。


ただ、最終的にはどのような環境で動かすつもりですか?

当然ですが、性能は環境によって異なります。

動作環境が同じく共用サーバーなのであれば、

一度に数千?1万件のメールを

受信しようとすると、遅延が発生します。

この状態が現在の正確な配信速度になると思いますが。

◎質問者からの返答

テストサーバはコメントで記述したとおり、ローカル環境のサーバで行うとします。


ただ、最終的にはどのような環境で動かすつもりですか?当然ですが、性能は環境によって異なります。動作環境が同じく共用サーバーなのであれば、


以前、同じような質問をした際「数千?1万件ぐらいなら負荷がかからない」的な返答を受けたので、共有レンタルサーバでも利用できる事を想定しています。個人サイトの会員に対する使用なら、規模も小さくて良いですし、少人数を対象とするなら十分だと思います。


客観的に利用者を想定した場合、メール配信のシステムを作る度に「必ず専用サーバが必要」という条件になれば、誰も利用しないと思うのです。(個人利用、商用問わず)


ですので、一般にも利用されやすいメール配信のシステムを作る為に、色々テストしたり調べたりしています。


>>この状態が現在の正確な配信速度になると思いますが。


果たしてそうでしょうか。他者の作るフリーのメルマガ配信システムなどを見ても、そのような注意事項はありません。私は一箇所(自分のメールアドレス)に集中的に配信しているので、遅延が起きているのではないか?っと思っています。1件配信する毎に1秒sleepしていては、1時間で3600件しか配信されませんし‥。


3 ● ken33jp
●0ポイント

>遅延が発生します。

遅延が起こるのは仕様です。

調べればわかりますよ。

◎質問者からの返答

それを聞いているのですが・・・


4 ● tomcat_a88
●45ポイント

テスト環境の議論になってしまっているようですが…

(あと、具体的な遅延時間が無いのでわかりませんが)

お済みかもしれませんが、とりあえずのチェックをやるために、

mb_send_mail 関数の実行後に、ログを書き出してみてはと

思います。PHPの処理速度で遅延になっている可能性も…?

mb_send_mail関数の場合、SMTPサーバーへ接続・切断を毎回して

いますから、それに時間を食われているのでは?

次に考えられるのは、サーバー側の力量か制限です。

特にレンタルサーバーであれば、SPAM送信を考慮して一括に出せない

ような(長い時間キューにためる)処理をしているかもしれません。

あとは、受信側のサーバーの問題です。

特定のサーバー(今回はさくら)からのメール転送が不自然に連続する

結果、一時的に受け入れを拒否され、遅延になるという可能性です。

何にしても、専用サーバーでローカルに配送するところからテストを

始めてみると良いのではないでしょうか。

メールを出す時点で(自分のサーバー側で)遅延しているのか、相手の

サーバー側で遅延しているのかから切り分けていくといいと思います。

◎質問者からの返答

コメントの方でいただきましたが、こちらも参考にさせていただきます。

関連質問


●質問をもっと探す●



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