右クリックでメニューを表示する(contextmenu)
まず、ソースコードをダウンロードする。今回は3.3.1のバージョンを利用する。
% cd /tmp % wget https://github.com/johndoh/roundcube-contextmenu/archive/refs/tags/3.3.1.tar.gz % tar xvfz 3.3.1.tar.gz % sudo mv roundcube-contextmenu-3.3.1 /var/lib/roundcube/plugins/contextmenu % cd /var/lib/roundcube/config
roundcubeにプラグインを追加する。/var/lib/roundcube/config/config.inc.phpにプラグインを追加する。
// List of active plugins (in plugins/ directory) $config['plugins'] = [ 'archive', 'zipdownload', 'contextmenu', ];
サーバサイドのメールフィルター機能(managesieve)
roundcube 1.6.1では/var/lib/roundcube/plugins/にmanagesieveが標準でインストールされている。Install Roundcube Webmail on Debian 11/10 with Apache/Nginxを参考に設定する。
必要なソフトウェアをインストールする。
% sudo apt install dovecot-sieve dovecot-managesieved dovecot-lmtpd
dovecot、postfix、roundcubeの各設定ファイルを編集する。
まず、dovecotの設定ファイルを設定する。
% cd /etc/dovecot/conf.d/ % sudo vi 10-master.conf
該当部分を以下のように書き換える。
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0666 user = postfix } # Create inet listener only if you can't use the above UNIX socket #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #} }
引き続き15-lda.confを編集する。
% sudo cp -p 15-lda.conf 15-lda.conf.org % sudo vi 15-lda.conf
編集結果は以下の通り。
% diff 15-lda.conf.org 15-lda.conf 47c47 < #mail_plugins = $mail_plugins --- > mail_plugins = $mail_plugins sieve
引き続き15-lda.confを編集する。
% sudo cp -p 20-lmtp.conf 20-lmtp.conf.org % sudo vi 20-lmtp.conf
編集結果は以下の通り。
% diff 20-lmtp.conf.org 20-lmtp.conf 39c39 < #mail_plugins = $mail_plugins --- > mail_plugins = quota sieve
/etc/postfix/main.cf を編集する。
% cd /etc/postfix % sudo vi main.cf
以下を追加する。
## For mangesieve on roundcube mailbox_transport = lmtp:unix:private/dovecot-lmtp mailbox_command = /usr/lib/dovecot/deliver -f "$SENDER" -a "$RECIPIENT" smtputf8_enable = no
このままだと以下のようなエラーがでて、ローカルユーザにメールが配信されない。期待しているのはUSERNAME@DOMAINの@の前の「USERNAME」をユーザ名と解釈してくれることであるが、USERNAME@DOMAINをユーザ名と解釈し、エラーが発生している。
Mar ZZ 12:06:24 hogehoge postfix/lmtp[2522238]: 511866E1031: to=<USERNAME@DOMAIN>, relay=hogehoge.fugafuga.jp[private/dovecot-lmtp], delay=0.18, delays=0.14/0/0/0.04, dsn=5.1.1, status=bounced (host hogehoge.fugafuga.jp[private/dovecot-lmtp] said: 550 5.1.1 <USERNAME@DOMAIN> User doesn't exist: USERNAME@DOMAIN (in reply to RCPT TO command))
/etc/dovecot/conf.d/10-auth.confのauth_username_formatを以下のように編集する(参考:email - Postfix → Dovecot LMTP: User does not exist: uid@domain - Server Fault)。
#auth_username_format = %Lu auth_username_format = %Ln
dovecot と postfixを再起動する。
% sudo systemctl restart dovecot postfix
roundcubeにプラグインを追加する。/var/lib/roundcube/config/config.inc.phpにプラグインを追加する。
// List of active plugins (in plugins/ directory) $config['plugins'] = [ 'archive', 'zipdownload', 'contextmenu', 'managesieve', ];
指定した行より多い引用を隠す(hide_blockquote)
標準で添付されている。roundcubeにプラグインを追加する。/var/lib/roundcube/config/config.inc.phpにプラグインを追加する。
// List of active plugins (in plugins/ directory) $config['plugins'] = [ 'archive', 'zipdownload', 'contextmenu', 'managesieve', 'hide_blockquote', ];
添付ファイルの一時置き場の指定(filesystem_attachements)
/var/lib/roundcube/config/config.inc.phpにプラグインを追加する。
// List of active plugins (in plugins/ directory) $config['plugins'] = [ 'archive', 'zipdownload', 'contextmenu', 'managesieve', 'hide_blockquote', 'filesystem_attachements', ];
ヘルプ(help)
/var/lib/roundcube/config/config.inc.phpにプラグインを追加する。
// List of active plugins (in plugins/ directory) $config['plugins'] = [ 'archive', 'zipdownload', 'contextmenu', 'managesieve', 'hide_blockquote', 'filesystem_attachements', 'help', ];
Google Authenticatorを使った2要素認証(twofactor_gauthenticator)
GitHub - alexandregz/twofactor_gauthenticator: This RoundCube plugin adds the 2-step verification(OTP) to the login proccessを利用して、2要素認証(2FA)をできるようにする。
% cd /tmp % git clone git clone https://github.com/camilord/twofactor_gauthenticator.git % sudo mv twofactor_gauthenticator /var/lib/roundcube/plugins % cd /var/lib/roundcube/plugins/ twofactor_gauthenticator % sudo cp -p config.inc.php.dist config.inc.php
/var/lib/roundcube/config/config.inc.phpにプラグインを追加する。
// List of active plugins (in plugins/ directory) $config['plugins'] = [ 'archive', 'zipdownload', 'contextmenu', 'managesieve', 'hide_blockquote', 'filesystem_attachements', 'help', 'twofactor_gauthenticator', ];
Two Factor Authentication
有料だけれども、TOTP(Google Authenticatorなどのワンタイムパスワードアプリ)、E-Mailによる2要素認証が行える。