オープンソース

一覧へ

2. RC-AttachFileSeparaterセットアップ

2.1. 前提・事前準備

RC-AttachFileSeparaterは、Roundcube専用のため、基本的なRoundcubeシステムが構築済みであることが前提であり、使用する際はRoundcubeのプラグイン設定に追加する(有効化する)必要があります。

また、使用にあたっては以下の条件を満たす必要があるため、設定が不足している場合は別途設定をしてください。
  • Roundcube上から問題なくメールの送受信が行えること
  • メールの送信元ユーザが、Nextcloudのユーザとして登録されていること(ローカルパートと同名である必要がある)
  • Nextcloud上のメールの送信元ユーザに、メールアドレスが設定されていること

RC-AttachFileSeparaterは、Nextcloudと連携して、分離した添付ファイルのアップロード・共有リンクの発行を行います。発行される共有リンクの期限や、共有リンクに設定するパスワードのポリシー(文字数や汎用パスワードチェックなど)などは、Nextcloud側の設定に依存します。別途Nextcloud側の設定を確認したうえで、RC-AttachFileSeparaterの設定を行ってください。

本マニュアルでは、Roundcubeを「/var/www/roundcubemail16」にインストールして構築・稼働している前提でセットアップ手順を記載します。

2.2. RC-AttachFileSeparaterをインストールする

2.2.1. 公式サイトからRC-AttachFileSeparaterソフトウェアアーカイブをダウンロードする

下記のURLからソフトウェアアーカイブをダウンロードします。アーカイブは、RC-AttachFileSeparater-バージョン.tar.gzです。


2.2.2. RC-AttachFileSeparaterソフトウェアアーカイブを展開する

ダウンロードしたRC-AttachFileSeparater-バージョン.tar.gzを、任意のフォルダに展開します。

# tar -xvzf /path/to/RC-AttachFileSeparater-バージョン.tar.gz

2.2.3. プログラム本体を配置する

展開したRC-AttachFileSeparaterソフトウェアアーカイブのディレクトリ自体を、Roundcubeインストールディレクトリの「plugins」ディレクトリ配下に「attachfile_separater」というディレクトリ名で配置します。
# cp -r RC-AttachFileSeparater-バージョン /var/www/roundcubemail16/plugins/attachfile_separater

2.3. RC-AttachFileSeparaterを設定する

2.3.1. 環境設定ファイルを配置・編集する

環境設定ファイルでは、主に本プラグインの挙動に関する主要な設定を行います。環境設定ファイルは、「config.inc.php」というファイル名で作成します。以下のようにサンプルファイルをコピーする形で作成します。
# cp /var/www/roundcubemail16/plugins/attachfile_separater/config.inc.php.dist /var/www/roundcubemail16/plugins/attachfile_separater/config.inc.php

環境設定ファイルの設定項目は、一部を除きすべて必須です。 また、PHPファイルのため、PHPの書式に合わせて記載する必要があります。

環境設定ファイルで設定可能な項目は次の通りです。なお、日本語を記載する場合は、文字コード「UTF-8」で作成してください。

設定項目
項目名 説明 設定内容
$afsconfig['nextcloud_url'] 連携先のNextcloudのURLを指定します。ログイン画面のURLの「index.php」より前の部分までを指定します。 実際のURL
$afsconfig['nextcloud_admin'] 連携先のNextcloudの管理者ユーザ名を指定します。 実際の管理者ユーザ名
$afsconfig['nextcloud_adminpass'] 連携先のNextcloudの管理者ユーザのパスワードを指定します。 実際の管理者ユーザのパスワード
$afsconfig['nextcloud_timeout'] Nextcloud連携時のタイムアウト値を指定します。 "1"以上の数字
$afsconfig['nextcloud_tls_verify'] Nextcloud連携時のTLSチェックを行うか否かを指定します。
  • 0: チェックしない
  • 1: チェックする
$afsconfig['roundcube_admin'] Roundcubeの管理者ユーザをPHP配列形式「array('ユーザ1', 'ユーザ2',...)」で指定します。ここで指定したユーザがRoundcubeにログインすると、本プラグインの管理者用画面上での設定・編集を行うことができます。 実際にRoundcubeにログインするユーザ名
$afsconfig['default_separation'] デフォルトの挙動として、全ての宛先を分離対象とするか否かを指定します。分離する場合は、ランダムパスワードで共有リンクを発行します。(設定画面上で設定している場合は、その内容が優先されます。)
  • 0: 分離しない
  • 1: 分離する
$afsconfig['inline_separation'] HTMLメール本文にインライン画像が含まれている場合、該当のインライン画像を分離するか否かを指定します。
  • 0: 分離しない
  • 1: 分離する
$afsconfig['password_length'] 共有リンク発行時のパスワードがランダムパスワードである場合の、自動生成されるパスワードの長さを指定します。 "1~20"の数字
$afsconfig['password_display'] 管理者用画面で設定済みのドメインのパスワードを、管理者ユーザ以外が閲覧する際の表示形式を指定します。
  • 0: "********"と表示する
  • 1: そのまま表示する
$afsconfig['linkfile_template'] 共有リンク記載ファイルのテンプレートを配置したパスを指定します。 実際の共有リンク記載ファイルのテンプレートのパス
$afsconfig['linkfile_name'] 共有リンク記載ファイル名を指定します。 共有リンク記載ファイル名にしたい文字列
$afsconfig['linkfile_extension'] 共有リンク記載ファイルの拡張子を指定します。指定した形式で、共有リンク記載ファイルが作成・添付されます。
  • txt: テキスト形式
  • html(htm): HTML形式
$afsconfig['passmail_template'] パスワード通知メールのテンプレートを配置したパスを指定します。 実際のパスワード通知メールのテンプレートのパス
$afsconfig['passmail_subject'] パスワード通知メールの件名を指定します。 パスワード通知メールの件名にしたい文字列
$afsconfig['passmail_from'] パスワード通知メールの送信元アドレスを変更するか否かを指定します。変更する場合でも、ドメインパートは実際のドメインを使用します。
  • 0: root@にする
  • 1: 変更しない
$afsconfig['passmail_rcpt'] パスワード通知メールの送信先を指定します。
  • 0: 送信者のみ
  • 1: 受信者のみ
  • 2: 送信者と受信者の両方
$afsconfig['exclude_header'] 本プラグインの処理を行わないメールと判定するためのヘッダ情報を、PHP配列形式「array('ヘッダ1', 'ヘッダ2',...)」で指定します。 除外対象と判定するContent-Typeの値
$afsconfig['user_policy'] ユーザ用画面(ユーザ個別設定)を使用するか否かを指定します。使用しない場合、ユーザ用画面は表示されず、設定済みのユーザ個別設定も無視されます。
  • 0: 使用しない
  • 1: 使用する
$afsconfig['log_output'] 本プラグインのログ出力先を指定します。
  • 0: Roundcube標準のログに出力する(本プラグイン名でログファイルが作成されます)
  • 1: Syslog経由でログ出力する
$afsconfig['log_facility'] 本プラグインのログ出力先のファシリティを指定します。$afsconfig['log_output']にて1を設定(Syslog経由で出力)している場合のみ有効です。
  • auth
  • authpriv
  • cron
  • daemon
  • kern
  • lpr
  • mail
  • news
  • syslog
  • user
  • uucp
  • local0~7

設定例は次の通りです。
<?php
$afsconfig['nextcloud_url'] = 'http://nextcloud.test.com/nextcloud';
$afsconfig['nextcloud_admin'] = 'admin';
$afsconfig['nextcloud_adminpass'] = 'adminpass';
$afsconfig['nextcloud_timeout'] = 10;
$afsconfig['nextcloud_tls_verify'] = 0;
$afsconfig['roundcube_admin'] = array('admin', 'sysadmin');
$afsconfig['default_separation'] = 0;
$afsconfig['inline_separation'] = 0;
$afsconfig['password_length'] = 10;
$afsconfig['password_display'] = 0;
$afsconfig['linkfile_template'] = '/var/www/roundcubemail16/plugins/attachfile_separater/template/link_notice.tmpl';
$afsconfig['linkfile_name'] = '添付ファイル共有リンク';
$afsconfig['linkfile_extension'] = 'txt';
$afsconfig['passmail_template'] = '/var/www/roundcubemail16/plugins/attachfile_separater/template/password_notice.tmpl';
$afsconfig['passmail_subject'] = '共有リンクのパスワード通知';
$afsconfig['passmail_from'] = 1;
$afsconfig['passmail_rcpt'] = 0;
$afsconfig['exclude_header'] = array('multipart/encrypted', 'application/pgp-encrypted', 'multipart/signed', 'application/pgp-signature');
$afsconfig['user_policy'] = 1;
$afsconfig['log_output'] = 1;
$afsconfig['log_facility'] = 'local7';

2.3.2. テンプレートを配置・編集する

テンプレートファイルは、共有リンク記載ファイル用と、パスワード通知メール用の計2種類が必要です。 環境設定ファイルを配置・編集する にて指定した各テンプレートのパスに配置してください。なお、同梱されている以下のサンプルファイルをそのまま利用することもできます。
  • link_notice.tmpl (共有リンク記載ファイル用)
  • password_notice.tmpl (パスワード通知メール用)

共有リンク記載ファイル用については、 環境設定ファイルを配置・編集する にて指定した共有リンク記載ファイルの拡張子に沿った内容にしてください。(拡張子をhtmlにした場合は、テンプレートの内容もHTML形式にする必要があります)

テンプレートの内容を作成・変更する場合は、以下に従ってください。
  • 日本語を含める場合、文字コード「UTF-8」で作成する
  • それぞれ以下のタグをテンプレート内に記載する
共有リンク記載ファイル用テンプレートのタグ
タグ 説明
{LINK} 発行された共有リンク(URL)表示用
{FILENAME} 隔離された添付ファイル名表示用
{DATE} 該当メールの送信日表示用
{TOADDR} 該当メールの送信先アドレス表示用
{SUBJECT} 該当メールの件名表示用
{FROMADDR} 該当メールの送信元アドレス表示用
パスワード通知メール用テンプレートのタグ
タグ 説明
{LINK} 発行された共有リンク(URL)表示用
{FILENAME} 隔離された添付ファイル名表示用
{DATE} 該当メールの送信日表示用
{TOADDR} 該当メールの送信先アドレス表示用
{PASSWORD} 共有リンクのパスワード表示用
{SUBJECT} 該当メールの件名表示用
{FROMADDR} 該当メールの送信元アドレス表示用

2.3.3. RC-AttachFileSeparater用のDBを設定する

管理者用画面とユーザ用画面にて設定する内容を管理するためのDB設定を行います。Roundcubeにて使用しているDB内に、RC-AttachFileSeparater用のテーブルを作成します。付属のsqlファイルを、Roundcubeにて使用しているDBにインポートする形で作成します。
# mysql -u ユーザ名 -pパスワード DB名 < /var/www/roundcubemail16/plugins/attachfile_separater/attachfile_separater.sql

2.3.4. RC-AttachFileSeparaterを有効化する

ここまでの設定が完了した後、Roundcubeのconfigファイル(/var/www/roundcubemail16/config/config.inc.php)内のプラグイン設定に、RC-AttachFileSeparaterを追加します。なお、他に有効化しているプラグインよりも後(設定の最後)に追加する必要があります。
$config['plugins'] = array('XXX', 'XXX', ..., 'attachfile_separater');

また、RC-AttachFileSeparaterは、少なくとも以下のプラグインとの併用はできません。
  • vcard_attachment
  • enigma

以上でRC-AttachFileSeparaterの設定は完了です。正しく設定できた場合、Roundcubeの設定メニュー内に、RC-AttachFileSeparater用の設定画面が追加されます。
_images/setting_menu.png

実際に添付ファイル分離を行う宛先設定などは、上記の画面にて行います。詳細な運用方法については、次の章にて説明します。
一覧へ