- - PR -
メールマガジンの配信はどうやってます?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-06-21 22:22
はじめまして。
現在、メールマガジンの配信システムを構築・運営しているのですが 配信数が増加しており配信に時間がかかるようになってきました。 現在の方法を言うのは恥ずかしいのですが、 DBから対象者を読み込んでPHPで以下のコマンドをループさせて送っています。 $mp = popen("/usr/lib/sendmail -f アドレス." ".アドレス." ", "w"); ・ ・ pclose($mp); この方法は、問題がいっぱいで、、途中で止まって応答が帰ってこなかったり、 誤って別ページに移動してしまったり、、(配信が終わるまでブラウザを閉じられないので) そこで、安全な方法(?)でシステムを作り変えようかと思うのですが、 皆さんはどういった方法で大量のメール配信をされているのでしょうか? いま、変えようかと思ってる方法は、PHPのコマンドライン版でバックグラウンドで 動かそうかと思っていますが、この方法で配信されている方はいらっしゃるでしょうか? やはり、fmlなどのメーリングリストを使用したほうがいいのでしょうか? OS:RedHat7.2 DB:PostgreSQL MTA:qmail(postfixも試してみようかと思っています) を使用しています。 どうぞ、よろしくお願い致します。 | ||||
|
投稿日時: 2002-06-22 13:35
ML方式で済むなら(差し込みがないなら)、使うのが楽でしょ。
さらになんも考えたくなければ BCC: に配信先を列挙。 | ||||
|
投稿日時: 2002-06-22 19:30
しょむさん、お返事ありがとうございます。
差し込みとはどういったことでしょう? 本文に文章を自動的に加えるといったことでしょうか?? そうであれば、そいった機能は必要ありません。 BCCに配信先を列挙するのはいい方法ですね。 ループの数が少なくて済みそうですね。 ふと思ったのですが、BCCに書いた場合ってキューには どのような形で溜まるのでしょう??ひとつひとつのアドレスが 展開されてその数の分だけ溜まるのでしょうか?? | ||||
|
投稿日時: 2002-06-22 23:44
差し込みは、たとえばメールごとに別の名前を入れたりとか。そういうのです。
BCC はまぁふつうに使われる方法ですかね。 あんまり長すぎると文句いわれるかもしれないので、適当に分割すればいいでしょう。 大量配信については ML を使った方がいろいろ工夫されている気がしますが、DBにユーザリストがあるなら一長一短かも。 BCC がどういう扱いになるかは MTA によります。qmail 使ってるならおまかせしちゃっていいかと。同報の扱いについては定評ありますから。 あと、PHP なら、mail インタフェースありませんでしたっけ?sendmail コマンド起動なんてせずに SMTP 叩いた方がはるかに効率いいとおもうんですが。 [ メッセージ編集済み 編集者: しょむ 編集日時 2002-06-22 23:56 ] | ||||
|
投稿日時: 2002-06-23 16:27
しょむさん、ありがとうございます。
大変勉強になります。 PHPのインターフェースを使用していたのですが、文字化けがおきてしまうんですよ。 携帯にも配信していまして、半角カナを使用した場合に文字化けしてしまって・・・。 PHPのコマンドライン版をバックグラウンドで動かして、BCCにアドレスを書いて送ろうと思います。 まだ、MTAの知識やMLの知識も浅いのでML方式の配信は勉強してからにします。 [ メッセージ編集済み 編集者: ta2n 編集日時 2002-06-23 16:29 ] | ||||
|
投稿日時: 2002-06-24 16:52
こんにちは、藤井と申します。
う〜ん、考え方を変えたほうがいいです。 まず、どこに時間がかかっているのかを突き止めましょう。それがわからないと何とも言えません。 また、こういうたぐいの質問をするときは ・配信数のボリューム ・ボトルネックはどこか ・配信するターゲット ・優先したいこと(予算や時間など) がわからないと誰もアドバイスできません。 たとえば、 ・配信数のボリューム の場合、ハードウェアをいいものにするのがいちばんいいでしょう。 ・ボトルネックはどこか DBがそうならDBのみを別マシンにするとか、SMTP間の通信がそうならSMTPをかえる、送信の順番をかえるなどがあります。DNS問い合わせがそうなら、キャッシュ用DNSをたてるとか。 ・配信するターゲット たとえば携帯端末が多いなら、同じドメインが多いはずですから、相乗り効果を狙ったりなどがありますね。 ・優先したいこと(予算や時間など) 上記のものはすべてこれに依存しますよね。 なのでPHPとかDBとかはあんまり必要な情報ではないです。むしろマシンのスペックとか書くといいでしょう。 また、qmailとpostfixは送信方法のポリシーが全く違うので、上記のことをよく考えないと期待した効果が得られません。 オライリーのfmlバイブルがお勧めです。fmlを使わなくても、一読する価値はあります。 それを読んでみてください。おそらく答えが書いてありますから。 | ||||
|
投稿日時: 2002-06-25 19:21
こんにちは、藤井さん。
説明がわるかったようで申し訳ないです。 PHPのコードまで書いておけばロジックの部分もつっこんでくれるかと・・・・ 聞きたかったのは、qmailやpostfixなどのチューニングも必要だと思いま すが、それ以前にみなさんどうやってメールをMTAに渡しているのかと、、 メルマガの規模に限らず(全体的な)仕組が知りたかったのです。 現在の状況を書きますと、 配信数は2千弱ほどでが、今後、1万までいきそうなものもあります。 ターゲットとなるのはPCと携帯で、3割が携帯のアドレスです。 ドメインでソートしてMTAに渡しています。 ハードウェアはペンティアム3の850MHzでメモリは256MB。 MTA以外に動いているものといえば、ApacheとPostgreSQLくらいです。 アクセス数は日に200〜300くらいなのでそれほど負荷はかかっていません。 fmlバイブルはやっぱりいいですか。 迷ったあげく買かわなったんですよ〜。 買って、読もうと思います | ||||
|
投稿日時: 2002-06-25 19:49
配信数がその大きさだったら、まじめに ML 使ったほうがいいかも。
配信先がほぼ固定で繰り返し配信するメルマガならなおさら。 んで、ユーザを DB につっこむってのもやめちゃう。 |