Friday, March 2, 2012

Alfrescoのメール送信設定とテスト用smtpd

こんにちは!大谷です。
今回はAlfrescoのメール設定と、テストや開発に利用できる疑似SMTPサーバについて紹介したいと思います。

先日Alfresco Enterprise 4がリリースされ、Alfresco Shareの機能がさらに充実し、旧来のAlfresco Explorer (web client)上で提供されていた機能が一通りShareにも実装されました。さらに、Alfresco Shareでは、Alfresco Explorerにはないチームコラボレーションに関する機能が提供されているため、今後はAlfresco Shareを利用する機会がますます増えていくと思われます(それどころか、Alfresco社はExplorerのメンテナンスをほとんど行っていないという情報も漏れ聞こえてきます)。

そのようなAlfrescoですが、Windows/Linux向けにインストーラが提供されているため、評価や開発で利用する際にはインストーラを実行するだけで簡単にセットアップが完了し、そのまま利用を開始できます(アプリケーションサーバやDBサーバも自動でインストールしてくれます)。

ただし、そのままの状態で使い始めると、うまく動かない箇所があることに気付きます。それはメール送信です。Alfresco Shareでは、サイト(コンテンツ共有等のコラボレーションを行う場)にメンバを招待する際、メールが送信されます。メンバはメールに添付されたリンクをクリックしてサイトへの参加処理を行うのですが、メールが送信できないとメンバを招待できず、複数ユーザでのコンテンツ共有を行うことができません(Alfresco3系での話。Alfresco4系ではメール送信に失敗してもタスク機能で参加処理できるので問題になりません)。この問題を解決するためには、
  1. SMTPサーバを導入する
  2. Alfrescoが1.のSMTPサーバを使うように設定する
の2つを行う必要があります。


1. SMTPサーバの導入

まず、 SMTPサーバの導入についてですが、Linuxの場合はPostfixやqmail、sendmail等が既にインストールされているかパッケージ管理ツールで簡単にインストールできると思います。Windowsの場合が問題で、XPであればIISのSMTPサービスを有効にすればよいのですが、Windows 7ではIISにSMTPサービスが含まれておらず、別途なにがしかのSMTPサーバを導入しなくてはなりません。その場合、フルスペックのSMTPサーバを利用しても良いのですが、評価/テスト用途であれば、セットアップが簡単かつ外部にメールを送信することもない疑似SMTPサーバを利用することもできます。
筆者はWindows 7を利用していますが、Alfrescoを利用する際には主に以下の疑似SMTPサーバアプリケーションを利用しています。

mocksmtpd
Rubyで実装された疑似SMTPサーバ。メールを送信せずに、HTMLファイルとして保存します。メールの一覧がindex.htmlとして生成されるので、ブラウザでinboxを眺めるような感じで使用できます。

DevNull SMTP
Javaで実装された疑似SMTPサーバ。こちらもメールを送信せずに、GUIで確認したりeml形式のファイルとして保存したりすることができます。

どちらも簡単にセットアップでき、外部にメールを転送せずに送信メールを確認できるため、手元にインストールしておく価値はあると思います。Alfrescoに限らずメールを送信するようなアプリケーションを試す際にとても役立ちます。他にも同様のSMTPデーモンがあると思いますので、これは便利だよ!というものがありましたら是非教えてください。


2. Alfrescoのメール設定

Alfrescoのメール設定は<tomcat_dir>/shared/classes/alfresco-global.propertiesに記述します。
既にこのファイルが存在する場合はそのファイルを開き、存在しない場合は、alfresco-global.properties.sampleをalfresco-global.propertiesにコピーして開きます。
ファイル中ごろに"Outbound Email Configuration"という見出しで、mail.* という設定項目が並んでいる箇所があるので、準備したSMTPサーバに沿った設定を行います。例えば、ローカルで前述のSMTPデーモンを利用する場合は、以下のように設定します。
#
# Outbound Email Configuration
#-------------
mail.host=localhost
mail.port=25
mail.username=anonymous
mail.password=
mail.encoding=UTF-8
mail.from.default=alfresco@alfresco.org
mail.smtp.auth=false
設定はAlfresco再起動後に反映されるので、Alfrescoを再起動し、非公開サイトの作成→ユーザの招待を行い、メールが送信されていることを確認してください。


以上がAlfrescoからメールを送信するための設定手順になります。Alfrescoを手元のPCで簡単に試したい場合に参考にしていただければと思います。

ちなみに、サイトへのユーザ招待については、グループを作成→そのグループにユーザを追加→そのグループをサイトに招待という手順によって、メール/タスクによる参加確認処理を省略することもできます。SMTPサーバの設定が億劫な場合はこの方法でも先に進めますよというTIPSを残しつつ、今回はここまでとさせていただきます。

No comments: