よく、空メールにて送られてきたアドレスを評価してデータベースに記録するシステムが有りますが、
どのような開発を行えば実現できるのかを調べています。
DB側は想定できていますので、受信メールを評価し、それに応じた返信を可能にする(サーバー?)カスタマイズ部分を指しています。
また、プログラムがPOPする手法は現実的ではないと考えています。
開発の糸口となる情報をお願いします。
本でも結構です。
※現在、このようなサービスを行っているサイトの紹介はNGです。
Linuxとのことですので、qmailを使用していると思います。qmailの場合は、.qmailファイルに以下のような記述を行うことで、メールの内容をプログラムに渡すことが出来ます。
============
|/usr/local/bin/parse-mail
============
このプログラムの中でメールのヘッダを解析すればよいと思います。MLなどの配送プログラムも同様の方法を使用しています。
仮にSendmailなら、/etc/aliasesに同様の記述を行います。
mailが送られてくると、メールスプールにメールがたまります。 正確には、1つのファイルに追記されて行きます。そこで、perlなどのスクリプトを使って、本文がNULLならメールアドレスをDBに投げる様にしては、いかがでしょうか?
スクリプトはクーロンで設定するのが良いでしょう。
処理速度を求める場合はC言語で書くことをオススメします。
ん〜ん。
難しそうですね。
参考にします。
/etc/aliasesにおいて、
エイリアス先の指定を“| コマンド行”のようにしておくと、メイル全テキストが、そのコマンドの標準入力として渡されて起動されるので、これを使えばいろいろと何でもできます。
ユーザ“mail”で動くのでパーミッションに気を付けて下さい。
参考にします。
ありがとうございます。
Yahoo! JAPAN
URLはダミーです。
以前、作った時の方法ですが、、、
空メールを受け取るサーバーにアカウントを用意しておいて、「.forward」にプログラムを書きメールアドレスを抜き出し、DBに登録、、、というのはいかがでしょう?
考えもしませんでした。
研究します。
http://www.fk.urban.ne.jp/home/kishida/kouza/james.html
Jamesでメールアプリケーション
メールをトリガーにして動作します。Javaで開発する場合、これが使えるかと思われます。
http://www.ki.rim.or.jp/~kuro/Java/James/
James(Java MailServer) 実験場
求めている答えが見つかりそうなヒントですね。
ありがとうございます。
qmailはsendmailよりも高速に動作するメールサーバですので、qmailの.qmailファイルを利用する方法が一番メジャーです。開発時に注意する点は
・プログラムを相対パスで書くと動作しません。
・動作しない場合には、maillogにエラー内容が吐き出されるので、それを参考にする。
・qmailのユーザで動作するのでパーミッションに注意が必要。
だと思います。
ちなみに、FedraCore2ですとqmail導入の際にコンパイルに失敗します。
qmailのサイトにRPMがありますので、そちらを利用してください。
詳細な情報ありがとうございました。
参考にします。
参考になります。
研究してみます。