[PHP-users 28379] Re: まぐまぐの無効メルアド削除に仕組みについて
HAYAKAWA Hiroshi
hayakawa @ sam.hi-ho.ne.jp
2006年 2月 11日 (土) 11:23:36 JST
早川@名古屋 と申します。
on 06.2.11 9:44 AM, nakazato @ mx2.freecom.ne.jp at nakazato @ mx2.freecom.ne.jp
wrote:
> こんにちは。
> 分からないことがあるので教えてください。
>
> 今、phpによるメルマガのシステムをあるSOHOの方に依頼する予定です。
>
> メルマガを配信していると登録したときには有効だったが、メルアドが変わっ
> たり、何らかの事情で届かなくなってしまうメルアドがあります。
> どういう仕組みかは知らないのですが、まぐまぐの場合は何回か不達になると
> 削除されるようになっています。
>
> 依頼する予定のSOHOの方に上記と同じような仕組みをお願いしたところ、
>> すくなくとも専用のメアドをセットして
>> 不達メールを受信する必要がありますが、不達メールは
>> 何時戻ってくるかあてになりませんので、難しいです。
> という回答でした。
>
> まぐまぐの場合は返信メールは送信者に届くので、上記のように専用メアドに
> 戻ってきた不達メールを受信して解除する仕組みとは違うような気がしていま
> す。
>
> まぐまぐの場合、無効メールの判定をどのようにしているのでしょうか?
> もし分かる方がいらっしゃいましたら教えて頂ければ幸いです。
まぐまぐの中を知っているわけではありませんが、
メールヘッダを見た限り、
まぐまぐの場合はまずメルマガIDを判別して、
それからエラーメール本文を解析してアドレスを抽出してる感じですね。
方法はいろいろ考えられると思いますが、
基本的にエラーメールは「エンベロープ送信者」アドレスに返されますから、
以下のようにするのが簡単ではないでしょうか。
ある登録者のアドレス anybody @ example.jp
配信システムのドメイン example.com
であるとすると、
error-anybody%example.jp @ example.com
を「エンベロープ送信者」アドレスにセットします。
なお、「エンベロープ送信者」は「From」とは違います。◆←ここ注意◆
そしてexample.comのメールサーバー側でこのメールを受け取れるようにし、
そのメールを処理するプログラムを用意しておきます。
メールサーバーのシステムにもよりますが、
メールサーバーで「-」をデリミタとして設定しておけば
「anybody%example.jp」は簡単に抽出できますから、
次に「%」を「@」に置換すればエラーになったアドレスがわかります。
あとはアドレスリストを管理しているデータベースで、
アドレスごとにエラー回数や日時などを管理し、
条件によって配信停止やアドレス削除などの停止をすればできあがりです。
エラーメールを処理するプログラムはPHPのCLI版を使ってつくれますよ。
これで一応PHPの話題にもなったかな?
--
With your dreaming, with your smile.
Hayakawa, Hiroshi <hayakawa @ sam.hi-ho.ne.jp>
Nagoya,Aichi,JAPAN ☆彡
PHP-users メーリングリストの案内