プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Roundcube も試しました

こちらの記事の実際に試したものになります。

Cypht を試した次は、 Roundcube も試してみます。なお、 GitHub はこちらです。

起動

試用であれば、 Roundcube も docker compose を使って立ち上げるのが一番簡単です。 Roundcube の docker compose に関しては、docker hub には情報がなかったのですが、 GitHub のリポジトリを見るとサンプルがあるので、それを用いました。

実際に試した docker-compose.yml はこんな感じです。

version: '3'

services:
  roundcubemail:
#    image: roundcube/roundcubemail:latest
    image: roundcube/roundcubemail:1.5.3-apache
#    container_name: roundcubemail
    container_name: roundcubemail3
#    restart: unless-stopped
    volumes:
      - ./www:/var/www/html
      - ./db/sqlite:/var/roundcube/db
    ports:
#      - 9002:80
      - 9003:80
    environment:
      - ROUNDCUBEMAIL_DB_TYPE=sqlite
      - ROUNDCUBEMAIL_SKIN=elastic
#      - ROUNDCUBEMAIL_DEFAULT_HOST=ssl://メールサーバー名
#      - ROUNDCUBEMAIL_SMTP_SERVER=ssl://メールサーバー名
      - ROUNDCUBEMAIL_DEFAULT_HOST=メールサーバー名
      - ROUNDCUBEMAIL_SMTP_SERVER=メールサーバー名

### Optional: add a full mail server stack to use with Roundcube like https://hub.docker.com/r/tvial/docker-mailserver
#   mailserver:
#     image: tvial/docker-mailserver:latest
#     hostname: mail.example.org
#     ...  # for more options see https://github.com/tomav/docker-mailserver#examples

サンプルとは異なり、 latest を使わずに 1.5.3 と少し前のものを使っています。これは、最新版(1.6.2)だと、ログイン成功後に下記のような php-zip 関連のエラーが吐かれていたので、避けました。

errors: <73b8bb66> PHP Error: php-zip extension is required for the zipdownload plugin in /var/www/html/plugins/zipdownload/zipdownload.php on line 36 (GET /?_task=mail&_token=EDMRG9or8UJXOvuYH2p7bFOjkqOQEeGP)

また、 IMAP でメールサーバーへ接続する際に、暗号化が有効な場合(メールサーバー名の先頭に ssl:// をつけた場合)はうまく認証できなかったので、とりあえず暗号化なしで試しています。

使い勝手

Roundcube が立ち上がったら、早速使ってみます。NASのアドレスを指定すると、下記のようなログイン画面が表示されます。

ここで、 docker-compose.yml で指定した IMAP サーバー上の有効なメールアドレスとパスワードを入力すると、ログインできます。

読み込み

ログインすると、そのメールアドレスでのフォルダ一番左に表示され、中央に選択中のフォルダにあるメールの一覧が表示されます。で、メールを選択すると、一番右にメールの内容が表示されます。

メールクライアントの動作として素直に受け入れられますね。また、個人的には配色や表示している内容、フォントサイズ等も好みの感じです。

添付ファイルの表示

添付ファイルもブラウザ表示できるもの(例えば、画像ファイルやPDF)であれば、別ウィンドウが立ち上がって、表示されます。

複数アカウント

Roundcube はそのままでも、『設定』->『識別情報』を選択して、『追加』ボタンを押すと、

このような形で、識別情報を追加することができます。これにより、複数の送信者情報を選択することができます(リンク先の Multiple sender Identities という機能になります)。とはいえ、送信者情報(From 欄)や署名を切り替えるだけなので、複数のメールボックスを見ることはできません。

複数アカウントを切り替えて、それぞれのメールボックスをみたり操作したりするためには、別途プラグインが必要になります。これは、 Roundcube の機能紹介ページにもリンクが張られている ident_switch というものになります。

boressoft/ident_switch - Packagist

こちらをインストールしてやれば、問題なく使えるようになります。

インストールはコンテナ内で行う必要があるので、NAS に SSH でログインして、下記のように行います。

[ユーザ名@NAS名 application]$ docker exec -it roundcubemail3 composer require boressoft/ident_switch --update-no-dev

すると下記のようなメッセージが表示されて、

Using version ^4.4 for boressoft/ident_switch
./composer.json has been updated
Running composer update boressoft/ident_switch
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Installing dependencies from lock file
Package operations: 1 install, 0 updates, 0 removals
As there is no 'unzip' nor '7z' command installed zip files are being unpacked using the PHP zip extension.
This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
Installing 'unzip' or '7z' (21.01+) may remediate them.
  - Installing boressoft/ident_switch (4.4.2): Extracting archive
Do you want to activate the plugin ident_switch? [Y|n] y
Updated local config at /var/www/html/config/config.inc.php
Creating package config file
Running database initialization script for ident_switch
Creating database schema... [OK]
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
7 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
[ユーザ名@NAS名 application]$ 

unzip がないとか、若干、警告が出てますが、問題なくインストールできたようです。

Roundcube の画面に戻り、『設定』->『識別情報』と進みます(プラグインのインストール後、ログアウトしてなくても大丈夫でした)。『作成』で識別情報を追加すると、今度は、

のように、先ほどの識別情報の追加画面の下側に、 ident_switch を有効にするボタンが表示されます。こちらを有効にすると、

のように、 IMAP および SMTP サーバーの情報を入力できるようになります。

ここで、サーバーおよびメールアドレスやパスワード等の情報を入力して、保存ボタンを押すと、

のように、2つのアカウントを見ることができます。

アカウント追加後、左側のメニューから『電子メール』を選択すると、メールアドレスが表示されている部分に、ドロップダウンリストっぽい記号が表示され、

これをクリックすると、

のように、アカウントを選択することができるようなります。

で、アカウントを切り替えると、切り替えた先のアカウントのメールを見ることができます。

いい感じですね。

メールの移動

メールを選択して、同じアカウント内のフォルダに移動させることは問題なくできます(ドラッグアンドドロップでもできますし、メニューから移動先を選ぶ形でもできます)。

でも、アカウントをまたいだメールの移動については、残念ながら、 Cypht とは異なりできませんでした。

送信

画面左の『新規作成』ボタンを押したら、受け取ったメールに返信をすると、メールの作成画面が表示されます。デフォルトの発信者は、選択中のアカウントですが、これを切り替えることもできます。

まとめ

ということで、 Roundcube はメールクライアントとして使い勝手がよさそうです。また、プラグインを入れればマルチアカウントにも対応できます。

希望することでできなさそうなのは、アカウントをまたいだメールの移動ぐらいになりそうです。まあ、メールのインポート・エクスポートはできるので、少なければ、それらを使っても対応できそうです。

であれば、今の Rainloop の替わりとしては、これが一番妥当っぽいですね。