No.6ベストアンサー
- 回答日時:
No.5
- 回答日時:
DNSをローカルで持ちましょう。
トラフィック処理力の有るDNSを探しましょう。
一通枚に処理するのではプロセスの起動のオーバーヘッドがデカイので100通やら1000通など効率の良い固まりの大きさを探しましょう。
メモリが大きなルータを使いましょう。
SQLを見直しましょう。
サブクエリなどを必要とする複雑な処理なら結果を先にどこかに保存してからまとめてやりましょう。
はやいコンコンピュータを使いましょう。
DBとのコネクションプーリング、高速な接続方法の検討などDB接続の基本を見直しましょう。
困るだけじゃだめです、何か自分で考えて試しましょう。
#試行錯誤すればするほど懐が深くなるものです。
No.4
- 回答日時:
1分で数千通っていうのは、現実的には難しいでしょうね。
工夫を重ねれば出るスピードだと思いますが、とにかくメールを大量に速く送信するノウハウは、プログラムだけでなくサーバーのセットアップやMTAの設定によるところも大きいです。僕も商売でメルマガ発行システムなど手がけていますが、そのノウハウはちょっとここには書けません(^^;。商売のネタだからというのもありますが、書ききれる内容じゃないんです。10人に送って1通1秒というのは遅すぎかなとは思いますが、スクリプト自体はすぐに終わりますか?スクリプト自体が1ループ1秒かかってるとしたら、どこで時間が掛かっているのかをスクリプトの随所で時間を表示させるようにして(できればマイクロ秒まで)どこが遅いのか突き止めましょう。
あとPHPからmailコマンド等でsendmailにメールを渡しているのだと思いますが、ここから先が遅いようでしたらそれはスクリプトの問題ではありません。MTAの設定が悪いのか、サーバーの負荷自体が高いのか、queueが溜まりまくっていて遅いのか、など調べる事は山のようにあります。
MTAはsendmailですか?POSTFIXにするだけで何割かは速くなると思います。一般論ですが。
一度一番単純なメール送信スクリプト、10人なら10コのアドレスを配列に入れてループさせて送るだけのものを書いてみて、それでテストしてみたらどうですか?
No.3
- 回答日時:
SENDMAILが遅いのかもしれません。
どのように送っているのかは不明ですが。
予想ですがPHPの問題ではないような気がします・・・
ためしにメールを送らないで、メールアドレスを表示するだけにしてみたときと比較すればメール送信にかかる時間がどの程度かが分かると思います。
時間指定が出来るメールで、15分単位で自動的にPHPを自動で動かすようにしています。
自動で動かすときにコマンドプロンプトが立ち上がるのですが、結構時間がかかってるみたいなのでどうにか早くならないものかと質問しました。
プログラムはデータベース内に「システム時間>送信したい時間メール」のものを抽出しメールを送信するものです。
今度メールを送らないで試してみます。
No.2
- 回答日時:
メール数が大量の場合、メーリングリストを使うと便利です。
DB → 転送 → メーリングリストのメンバー更新 と
1)メンバーをDBに保存。
2)DBからデータ送信し、メーリングリストのメンバー更新。
3)メール送信。
メーリングリストは、管理者のみが送信出来るようにしておけば
良いと思います。
この環境で、5000~6000人宛のメール送信をしています。
この回答への補足
ありがとうございます。
メーリングリストが大量にメールを送るには一番いい方法だとは思うのですが、色んな種類のメンバがいるのでたくさんのメーリングリストを作成しなければならないのでなるべくPHPのみでやりたいと思っています。
No.1
- 回答日時:
一度に何通位送るんですか?メールを速く、大量に送るというのはPHPの問題だけじゃなく色々なポイントがあります。
ひと言で遅いと言っても、PHPの問題なのか他の問題なのかわかりませんので、まずはボトルネックを探しましょう。・一度に何通位送るんですか?
・遅いと言うのはどの位遅いんですか?
・求める速さはどの位ですか?
・遅いと思われる原因は推測できませんか?
この回答への補足
・一度に何通位送るんですか?
数十通から数千通くらいです
・遅いと言うのはどの位遅いんですか?
テストで10人くらいに送ったんですが、1人1秒程度かかりました
・求める速さはどの位ですか?
数千通になると数千秒くらいかかる計算になるので、数千通でも1分くらいで送れるといいのですが・・・
・遅いと思われる原因は推測できませんか?
PCのスペックもあると思うのですが、プログラムの記述も効率の悪い書き方をしているような気がします
細かい内容は覚えてないんですが、データベースからメールアドレスをループで呼び出しその中で1アドレスずつメール送信しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPhone(アイフォーン) iPhoneが14Proと初代SEがあります。 二台並べてたら、これに登録してる回答つきましたメール 1 2022/10/29 17:19
- Yahoo!メール yahooメールですが、同時発信メールで送信しようとしても、送信できない 2 2022/05/06 17:30
- Yahoo!メール メルカリのパスワード再設定メールが届きません。 1 2023/07/14 09:34
- Android(アンドロイド) コスモ石油のアプリの機種変後の再登録ができません。 利用しているスタンドからお知らせは来るのでメアド 1 2023/02/02 19:48
- 求人情報・採用情報 今日、ホテルのアルバイトに、タウンワークから応募しました。 すると、会社からGメールが届き、事前登録 1 2022/03/31 23:40
- 病院・検査 木下グループ新型コロナPCR検査キットを購入して月曜日にポスト投函しました ですが、その際に会員登録 1 2023/01/20 21:36
- その他(メールソフト・メールサービス) 複数のメールを送信した順と受信した順が違うのは何故? 4 2023/02/22 09:58
- その他(暮らし・生活・行事) 顕正会 脱会 いつ送る 顕正会に内容証明郵便で脱会届を送ろうと思っているのですが、それは、いつ送った 3 2022/05/30 04:19
- au(KDDI) AUメールが受信できなくなった件 1 2022/08/16 10:35
- Outlook(アウトルック) outlookのメール設定で困っています 3 2023/05/26 09:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6にてメールを送信する方法
-
コマンドプロンプトで添付ファ...
-
自動送信なのに個人名が入って...
-
【PHPでメルマガ配信したい!】...
-
メール受信で空メール送信のプ...
-
Bookを閉じて保存した時のみ実...
-
バーコードで読み取りメール送信
-
メール送信 MAPIMessages.Send ...
-
存在しないメールアドレスかど...
-
空メール送信~メールアドレス取得
-
タイマー機能を使って指定時間...
-
リファラが取得できない?
-
【エクセルVBA】メール送信前に...
-
ループの中で mailItemObj.Disp...
-
UWSCにつきまして
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
-
C# Excelファイルへの画像挿入。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードプレス、Contact Form 7...
-
VB6にてメールを送信する方法
-
存在しないメールアドレスかど...
-
コマンドプロンプトで添付ファ...
-
VBでメールを送る時のSMT...
-
問い合わせ完了ページでの二重...
-
送信日時を指定してメールを送...
-
一定時間毎に同じ動作を繰り返...
-
HPの更新をしたら自動でメール...
-
メールアドレスの存在確認はで...
-
$_SERVER{'HTTP_X_UP_SUBNO'}取...
-
mail関数を使うと遅いので
-
Bookを閉じて保存した時のみ実...
-
二重投稿防止方法
-
ブラウザの更新ボタン
-
mb_send_mail関数により送信さ...
-
javamailで220の応答が遅い
-
AccessのDoCmd.SendObjectについて
-
リファラが取得できない?
-
<HTML>~入る タグ が無いから ...
おすすめ情報