日刊アスキー Linux Top ASCII24 News ASCII24 Review ASCII24 Business Center 携帯24 Mac24 Akiba2GO! 日刊アスキー Linux デジタル用語辞典 ASCII24 Broadband Center ニュース 今日のコラム イベント情報 セミナー情報 Linux magazine ASCII24メールサービス アスキー編集会議
ASCII24 - [Main Menu] [Menu 2]
  ASCII24 > 日刊アスキー Linux > Linux magazine 1
111
記事/用語/ID検索 

Linux Magazineの最新記事一覧

Biz Express Focus 『HDE Mail Filter 1.0』 (2003年7月8日)
Biz Express Focus “Ready for e-business” (2002年6月7日)
これで解決! Linux 100の疑問―その3 (2001年9月6日)
これで解決! Linux 100の疑問―その2 (2001年8月27日)
これで解決! Linux 100の疑問―その1 (2001年8月24日)
覚えておきたい必須コマンド30―その6・vi、最初の一歩 (2001年7月13日)
覚えておきたい必須コマンド30―その5・シェルを使おう (2001年6月27日)
覚えておきたい必須コマンド30―その4・コマンドリファレンス (2001年6月18日)
覚えておきたい必須コマンド30―その3・管理コマンド (2001年6月12日)
覚えておきたい必須コマンド30―その2・便利なコマンド (2001年6月9日)
覚えておきたい必須コマンド30―その1・ファイルの基本操作 (2001年5月31日)
初めてでも大丈夫!今日から使える Linux (第3部) (2001年5月25日)
初めてでも大丈夫!今日から使える Linux (第2部) (2001年5月21日)
初めてでも大丈夫!今日から使える Linux (第1部) (2001年5月14日)






Contact Information

Top | アップデート | ムック | the DVD 2005 | business | Enterprise |
「彼方からの手紙」プログラムと使用環境

この連載は、IMAP4サーバとPerlスクリプトを組み合わせ、便利かつおもしろいメール環境を作ってみようという試みです。Perlスクリプトは、リモートホストからでも実行可能です。また連載では、Webブラウザからスクリプトを利用して、Windowsシステムなどのプラットフォームでも楽しめるようにしています。これは、IMAP4サーバ側でApacheを動作させ、Webブラウザからのアクセスに応じて起動するCGIを用意し、CGIが呼び出したPerlスクリプトの結果をブラウザに表示することによって実現しています。

 
■掲載プログラム類はこちらから

2001年11月掲載

2002年1月掲載

 
■使用環境の作りかた

掲載しているスクリプトは、ワシントン大学で作られたUW-IMAPサーバとPerl5が利用できることが前提です。Linux Magazineでは次の環境を使用していますが、LinuxのディストリビューションやIMAP4サーバのバージョンが多少違っていてもご利用は可能でしょう。
・Red Hat Linux 7.0.1J
・imap-4.7c2-12(ワシントン大学で作られたUW-IMAPサーバ)
・perl-5.6.0-10(Perl5)

◆IMAP4サーバを動作させる

Linuxのディストリビューションの多くには、IMAP4サーバが含まれているので、インストールがしてあれば、設定を変えるだけで動作します。Red Hat 7Jの場合は、次のようにします。

1.  

インストール後、xinetd.dディレクトリのimapファイルを開き、disable行が“no”になっているのを確認します。
ディストリビューションによっては、この代わりにinetd.confファイルのimapエントリで設定するものがありますが、この場合はimap行の先頭に“#”が付いていないことを確認します。

2.  

設定ファイルを書き換えたら、xinetd(またはinetd)デーモンにSIGHUPを送ります。

3.  

imapdデーモンはtcpdから起動されるようになっているはずなので、tcpdでローカル環境からのアクセスが可能なように設定しておきます(デフォルトではアクセス可能になっているはずなので、通常は変更の必要はないでしょう)。

4.  

IMAP4対応のメールソフト(Windows環境ならOutlook Express)を使って、IMAP4でのアクセスが可能かどうかを確認します。
◆Perl5環境を用意する

Perl環境も、Linuxのディストリビューションのほとんどに含まれているので、perl本体はそのままでも利用できますが、現時点でそのほか以下のようなperlの拡張モジュールを使用しているので、入手します。
・Mail::IMAPClient
 http://www.cpan.org/modules/by-module/Mail/Mail-IMAPClient-2.1.4.tar.gz
・MIME::Base64
 http://www.cpan.org/modules/by-module/MIME/MIME-Base64-2.12.tar.gz
・Jcode-0.75
 http://openlab.ring.gr.jp/Jcode/index-j.html
 http://openlab.ring.gr.jp/Jcode/Jcode-0.75.tar.gz
これらのモジュールは、アーカイブを展開し、カレントディレクトリをそのディレクトリに移したあと、
  $ perl Makefile.PL
  $ make
  $ su (rootユーザーになる)
  # make install
の手順でインストールできます。

◆連載のスクリプトを配置する

連載で製作したPerlスクリプト群(imapcat、imapfolder等)は、CGI から見てpathが設定されている場所(/usr/local/bin/等)に配置します。また、スクリプトとして実行ができるように、必要に応じて“chmod +x”でパーミッションを設定しておいてください。Perlスクリプトは先頭行の“#!/usr/bin/perl”で起動するようになっていますが、Perlのインストール先が違う場合は書き変えてください。

CGIプログラムを配置する

CGIプログラムは任意の場所に配置できますが、毎回ごとに分けて、~/public_html下に“mail256/連載回/”のディレクトリを作成し、配置するとよいでしょう。たとえば、
  ~/public_html/mail256/3/
のようなかんじです。また、これらのCGIプログラムの実行を許可しておきます。これには、
  <directory /home/*/public_html>
  Options +ExecCGI +Includes
  </Directory>
などという設定をhttpd.confファイルに付け加えます(上記の設定で、サーバサイドインクルードも許可されます)。また、拡張子.cgiがCGI実行ファイルであることを認識させるには、
  AddHandler cgi-script .cgi
という行が必要です。最近のApacheでは、この行の行頭に“#”を付けて注釈にしていることが多いので、こちらも修正しておきます。
最後に、Apacheを再起動させます。

◆プログラムが使用する設定ファイル

連載で製作したCGIプログラムは、そのままでも使用できますが、IMAPサーバの認証に使用するパスワードをアクセスの都度入力しないですむように、ユーザーのホームディレクトリから読み込むこともできます。このためには、suExec機能をApacheに組み込み、ユーザーのホームディレクトリに、.imapcatrcを配置します。

◇suExec機能を組み入れる

Apacheは、デフォルトでは各ユーザーごとのホームページ機能を働かせているはずです。httpd.conf(/etc/httpd/confなどにある)に、
  UserDir public_html
という行があればOKです。suExecはApacheとともにインストールされていて、/usr/sbinなどに置かれているはずです。“rpm -ql apache | egrep suexec”などで確認してください。Apacheを起動したとき、error_logファイル(/etc/httpd/logsなどにある)に、
  [notice] suEXEC mechanism enabled
と表示されればOKです。起動しない場合、おそらくsuexecコマンドのパーミッションが問題と思われます。
  $ chmod 4711 /usr/sbin/suexec
としてsticky bitを立てておきましょう。そのあと、Apacheを再起動すれば動くはずです。

◇ .imapcatrcの用意

ユーザーのホームディレクトリに .imapcatrcというファイルを用意すれば、そこからパスワードが読み込まれます。このファイルは、imapcatだけでなく他のツールからも使われます。ファイルの内容は、
  ユーザー名@IMAPサーバ名  パスワード
です。サーバの数が複数ある場合は、次のように複数書くことも可能です。
  ユーザー名1@IMAPサーバ名1  パスワード1
  ユーザー名2@IMAPサーバ名2  パスワード2
  ユーザー名3@IMAPサーバ名3  パスワード3