*IRC/SMTPゲートウェイ [#w3c4b9e7]
 RIGHT:2008-02-12
 RIGHT:川俣吉広
 
 IRCとメールとの間でメッセージをやりとりするための機能を
 実験的に実装してみました。
 **アーキテクチャ [#i8b051b4]
 アーキテクチャの概略を下図に示します。~
 下図の[IRC/SMTP Gateway]および[injector]の部分が今回作成した部分です。
 
 IRC/SMTP Gatewayは、IRCクライアントとして目的のチャンネルにJOINしており、
 IRC内での発言を受信します。
 受信された発言は、メーリングリストに転送するためメールとしてSMTPサーバに渡されます。
 
 一方、メーリングリストにメールが投稿された場合は、メーリングリストの配信先の
 アカウントの一つから injectorというプログラムに引き渡されます。
 injectorの起動とデータの引き渡しは、.forwardや.procmailrcでの設定により行っています。
 
 injectorは、標準入力からメールのヘッダと本文を読み込み
 一定の形式に変換した後 IRC/SMTP Gatewayに渡し、このメッセージが
 IRCネットワークに投稿されます。
               Mailing                               IRC
               List                                 Channel
                 |<---[ML driver]                     |<-->[IRC user 1]
                 |        ^                           |
  [ML user 1]<-->|        |                           |<-->[IRC user 2]
                 |--->[SMTP Server]<----[IRC/SMTP]<-->|
  [ML user 2]<-->|                      [Gateway ]    |----[IRC user n]
                 |                          ^
  [ML user n]<-->|                          |
                 |                          |
  [ML user X]<-->|                          |
       |                                    |
       |                                    |
       +-->[.forward or]-->[injector]-------+
           [.procmailrc]
 **利用方法 [#o32a25eb]
 ***IRCユーザ側 [#d45ad74b]
 IRCネットワーク上では、ゲートウェイは一人のユーザのように見え、
 そのチャンネルでの発言はすべてメーリングリストに投稿されるため、
 とくに設定等は必要ありません。
 ***メールユーザ側 [#a64c35b8]
 メールを用いて交信を行う場合はメーリングリストに加入する
 必要があります。
 
 今回の実験では、メーリングリストシステムにPPML((http://www.kk.iij4u.or.jp/~ando/ppml/ppml.html))
 を使用しています。
 
 PPMLの使用法を簡単に説明します。
 
 :メーリングリストに参加したい|
 以下のようなメールを送信します。
  To: ppserv@dameningen.kicks-ass.net
 本文
  subscribe ircebug
 しばらくすると、以下のような確認を求めるメールが自動返送されてきます。
  Subject: Request to Confirm
  From: PPML-Server <ppserv@dameningen.kicks-ass.net>
  To: kaw@on.rim.or.jp
 本文
  Subscribe request for "ircebug" mail-list from your address received.
  If you can approve this request, Send back a line below.
          confirm 1202794262-00000001741 ircebug
  
  Thanks.
  -- ircebug-request@dameningen.kicks-ass.net
 このメールの「confirm 1202794262-00000001741 ircebug」の部分を
 ppserv@dameningen.kicks-ass.net宛に返送すると、
 このメールの発信元メールアドレスがメーリングリストにメンバーとして追加されます。
 :メーリングリストから脱退したい|
 以下のようなメールを送信します。
  To: ppserv@dameningen.kicks-ass.net
 本文
  unsubscribe ircebug
 :メーリングリストに記事を投稿したい|
 ircebug@dameningen.kicks-ass.net宛に
 メッセージを送信します。~
 メッセージは、MLリストに配送されます。同時に
 IRCのチャンネルにも転送されます。
 現在、IRCに転送されるメッセージは、本文中最初の4行までです。
 :メーリングリストの配送を一時的に停止したい|
 以下のようなメールを送信します。
  To: ppserv@dameningen.kicks-ass.net
 本文
  off ircebug
 :メーリングリストの配送を再開したい|
 以下のようなメールを送信します。
  To: ppserv@dameningen.kicks-ass.net
 本文
  on ircebug
 :過去に配送されたメールを再取得したい|
 以下のようなメールを送信します。
  To: ppserv@dameningen.kicks-ass.net
 本文
  get ircebug 1-10
 最後の数字は、取得したいメールの記事番号です。~
 以下の書式が使用できます。
  get ircebug 10        ... 記事番号10のメールを取得
  get ircebug 1-10      ... 1から10まで
  get ircebug 1,2,7     ... 1と2と7
  get ircebug 1,2,5-10  ... 1と2と5から10まで
 offコマンドで一時的に配送を停止していた間に
 配送されたメールもgetコマンドで取得できます。
 
Top Index Search Recent Backups  Help  RSS