WebMailの構築と活用法

1 はじめに

 無料で構築できるVineLinuxサーバを活用して校内のみで利用できるメールサーバを構築します。また,SquirrelMail,Roundcubeといったウェブメールソフトウェアを利用し,ブラウザ上でメールの送受信ができるようにシステムを構築する手順を紹介します。このシステムを利用することでセキュリティを確保したメール送受信の実習を行うことができ,サーバ側でのユーザやメールの一元管理も可能になります。

2 各種設定

(1) 概要と準備

今回サーバとして使用したパソコン
CPU Celeron1.5GHz
メモリ 1GB
OS等 VineLinux6.2(apache2,php5.5,postfix,Dovecot,MySQLなどインストール済み)
IPアドレス 192.168.1.61
DNSサーバでドメイン名を設定(www2.pcroom.edu,mail2.pcroom.edu,ftp2.pcroom.edu)
 ※ DNSサーバが稼働していなくてもIPアドレスでアクセスできます。ドメインの部分をIPアドレスに読み替えてください。

クライアントパソコン
プロキシサーバが設定してある場合は,www2.pcroom.eduに直接アクセスできるように設定(ブラウザのLAN設定で例外に記述)

(2) apache2(2.2.24)とPHP5(5.5.5)の設定(ウェブサーバの構築)

ア apache2の設定(以下,該当部分を編集・設定する)
# vi /etc/apache2/conf/httpd.conf

### Section 2: 'Main' server configuration
ServerAdmin root@pcroom.edu ←エラー表示の時に問い合わせ先となるアドレス
#ServerName www2.pcroom.edu:80 ←先頭の#を削除 Apacheサーバが自分自身のホスト名を示すとき利用
DocumentRoot "/var/www/html" ←コンテンツの配置場所
DirectoryIndex index.html index.php index.html.var ←「index.php」を追加

イ PHP5の設定
# vi /etc/php5/php.ini

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT ←WebMailのエラーログへの対応のため追記
[Vine] ←VineLinuxの場合は,最後に一括で表示してある
date.timezone=Asia/Tokyo ←必ず設定(VineLinuxの場合は既に存在する)
output_buffering = On ←「OFF」から「On」に変更
output_handler = mb_output_handler ←追加

ウ apacheの起動
# /etc/rc.d/init.d/apache2 start

Apache2 HTTP Serverを起動中:
[crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Pre-configuration failed [ 失敗 ]    ** Vine6.2でphpを導入すると起動に失敗する場合がある。 **

# /sbin/update-alternatives --config apache2 ←[ 失敗 ]した場合に実行

2 プログラムがあり 'apache2' を提供します。
選択 コマンド
-----------------------------------------------
+ 1 /usr/sbin/apache2.worker
* 2 /usr/sbin/apache2.prefork
Enter を押して現在の選択 [+] を保持するか,選択番号を入力します:「2」を選択
# /etc/rc.d/init.d/apache2 start

Apache2 HTTP Serverを起動中: [ OK ]

エ apacheの自動起動の設定
# chkconfig apache2 on

オ ファイアーウォールのTCP80番ポート(WWW)を開放する

(3) postfix(2.8.10)の設定(メールサーバの設定)

ア postfixの設定
# vi /etc/postfix/main.cf

#myhostname = www2.pcroom.edu ←先頭の#を削除して,自ホスト名に変更
#mydomain = pcroom.edu ←先頭の#を削除して,自ドメイン名に変更
#myorigin = $mydomain ←先頭の#を削除 ローカルで 投函されたメールがどのドメインから来るように見えるかを指定
#inet_interfaces = all ←先頭の#を削除 全てのネットワーク アドレスを指定
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ←先頭の#を削除 ローカルに配送するドメインを指定
#mynetworks = 192.168.1.0/24, 127.0.0.0/8 ←先頭の#を削除して,自ネットワークに変更
#home_mailbox = Maildir/ ←先頭の#を削除 ユーザのホーム ディレクトリを指定(dovecotと同じにする)

イ postfixの起動
# /etc/rc.d/init.d/postfix start

ウ postfixの自動起動の設定
# chkconfig postfix on

エ ファイアーウォールのTCPの25番(smtp)を開放する。

(4) dovecot(2.0.21)の設定(受信メールサーバの設定)

ア Dovecotの設定
# vi /etc/dovecot/dovecot.conf

#protocols = imap pop3 ←先頭の#を削除 IMAPとPOP3を有効にする
#listen = * ←先頭の#を削除し「,::」を取り除く IPv4のみを有効とする

# vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no ←先頭の#を削除 ローカル内のみで使用するため平文をOKとするから「yes」を「no」に変更

# vi /etc/dovecot/conf.d/10-mail.conf

#mail_location = maildir:~/Maildir ←先頭の#を削除 ユーザのホーム ディレクトリを指定(postfixと同じにする)

# vi /etc/dovecot/conf.d/10-master.conf

service imap-login {
    inet_listener imap {
        #port = 143 ←先頭の#を削除
    }
}

# vi /etc/dovecot/conf.d/10-ssl.conf
#ssl = no ←先頭の#を削除 ローカル内のみで使用するためSSL通信はしないから「yes」を「no」に変更
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ←先頭に#を追加
#ssl_key = </etc/pki/dovecot/private/dovecot.pem ←先頭に#を追加

イ dovecotの起動
# /etc/rc.d/init.d/dovecot start

ウ dovecotの自動起動の設定
# chkconfig dovecot on

エ ファイアーウォールのTCPの143番(imap)を開放する。

(5) MySQL(5.1.68)の設定(Roundcubeで利用)

ア confファイルの選択
/usr/share/mysql/の中に以下の三つのファイルがあり,該当する一つのファイルを/etc/へファイル名「my.cnf」としてコピーする。
my-large.cnf
512M 以上のシステムメモリの場合
my-medium.cnf
128M 以下のシステムメモリの場合
my-small.cnf
64M 以下のシステムメモリの場合
[例] # cp /usr/share/mysql/my-large.cnf /etc/my.cnf

イ confファイルの設定(追加)
# vi /etc/my.cnf

[mysqld]
skip-external-locking 
character-set-server=utf8 ←追加

ウ MySQLの起動
# /etc/rc.d/init.d/mysql start

エ MySQLの自動起動の設定
# chkconfig mysql on

オ MySQLのセキュリティ対策
初期状態ではrootにパスワードなしでログインできるため,rootにパスワードを設定します。
$ mysql -u root ←パスワードなしでログイン

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.68-log VineLinux MySQL RPMM
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password for root@localhost=password('12345678'); ←rootにパスワードを設定

Query OK, 0 rows affected (0.09 sec)

mysql> exit ←一度ログアウト
Bye

$ mysql -u root -p12345678 ←rootユーザが設定したパスワードでログインができることを確認

mysql> delete from mysql.user where password=""; ←パスワードがないユーザを削除
Query OK, 4 rows affected (0.03 sec)

mysql> select user,host,password from mysql.user; ←パスワードがあるユーザのみであることを確認
user host password
root localhost *D2EFA3ADBC4CAF4303D571D783F9AE6BA9D3A926
1 row in set (0.00 sec)

mysql> show variables like '%character_set%'; ←MySQL内部の文字コードの確認
Variable_name Value
character_set_client
character_set_connection
character_set_database
character_set_filesystem
character_set_results
character_set_server
character_set_system
character_sets_dir
utf8
utf8
utf8
binary
utf8
utf8
utf8
/usr/share/mysql/charsets/
8 rows in set (0.03 sec)

mysql> exit ←ログアウト

Bye

(6) 生徒ユーザの一括作成

ア グループの作成
# groupadd -g 3001 stutents

イ 全生徒ユーザのデータを作成 (例:表計算ソフトウェアを使って作成し,CSV形式で保存。テキストエディタ等で[,]を[:]に置換し,改行コードを[LF]で保存する)
user-2013_stu (このファイルは,ディレクトリ「/home」の中に置いてあるとする)
s3101:s3101:3101:3001:s3101:/home/s3101:/sbin/nologin
s3102:s3102:3102:3001:s3102:/home/s3102:/sbin/nologin
s3103:s3103:3103:3001:s3103:/home/s3103:/sbin/nologin
※ 改行コードは「LF」として下さい。文字コードは,「Shift-JIS」です。
※ 【Format】ユーザ名:パスワード:ユーザID:グループID:本名:ホームディレクトリ:ログインシェル
※ vine6.2になって,ログインの種類が「/bin/bash」,「/bin/sh」のみになりました。
     「/etc/shells」の最下行に「sbin/nologin」を追加してください。

ウ 全生徒ユーザを一括登録 (/home以下に各ユーザのディレクトリも作成されます)
# newusers user-2013_stu

3 WebMailの設定

(1) SquirrelMail (1.4.22) の設定

ア ダウンロード
SquirrelMail公式サイトよりプログラムをダウンロード
SquirrelMailを日本語化するサイトより日本語科パッチをダウンロード (SquirrelMailとバージョンが一致しませんが日本語化は問題ありません)
※ PHPのバージョンが5.4以降は以下の対応が必要です。

 原因

 対策

イ SquirrelMailのインストールと日本語化
# cd /var/www/html/ ←ダウンロードしたファイルは/var/www/html内に移動しておく
# tar zxfv squirrelmail-webmail-1.4.22.tar.gz ←解凍
# mv squirrelmail-webmail-1.4.22/ squirrel/ ←ディレクトリ名を「squirrel」と変更
# chown -R apache. squirrel ←ディレクトリ内すべてを所有者とグループを「apache」に変更
# mkdir /var/www/html/local ←日本語化するソースを解凍する準備
# mv ja_JP-1.4.18-20090526.tar.gz /var/www/html/local/ ←日本語化するソースを移動
# cd /var/www/html/local/
# tar zxfv ja_JP-1.4.18-20090526.tar.gz ←解凍
# ./install ←日本語化するソースをインストール
Please enter path to your squirrelmail installation: /var/www/html/squirrel [ENTER] ←インストール先を指定
# cd ..
# mkdir ./squirrel/attach ←メールの受信用ディレクトリ作成
# chown -R apache. squirrel
# chmod 730 ./squirrel/data ←アクセス権の変更
# chmod 730 ./squirrel/attach/ ←アクセス権の変更

ウ SquirrelMailの設定 (最小限の設定を提示してあります。)
# ./squirrel/configure

SquirrelMail Configuration : Read: config_default.php (1.4.0)
---------------------------------------------------------
Main Menu -- ←赤色の番号と[D]の部分についてそれぞれ変更を加える
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>

《 1》SquirrelMail Configuration : Read: config_default.php (1.4.0) ←Main Menuの1を選択
---------------------------------------------------------
Organization Preferences

5. Signout Page:/squirrel ←SquirrelMailを配置したディレクトリを指定(/var/www/html/squirrel

《 2》SquirrelMail Configuration : Read: config_default.php (1.4.0) ←Main Menuの2を選択
---------------------------------------------------------
Server Settings General
1. Domain : pcroom.edu ←自ドメイン名を設定

《 3》SquirrelMail Configuration : Read: config_default.php (1.4.0) ←Main Menuの3を選択
---------------------------------------------------------
Folder Defaults

3. Trash Folder:Trash
4. Sent Folder:Sent
5. Drafts Folder:Drafts

《 4》SquirrelMail Configuration : Read: config_default.php (1.4.0) ←Main Menuの4を選択
---------------------------------------------------------
General Options ← メールの受信する場所を指定
1. Data Directory:/var/www/html/squirrel/data/
2. Attachment Directory:/var/www/html/squirrel/attach/

7. Hide SM attributions:y [ENTER] ←ログイン画面でバージョンが表示されないように設定

《10》SquirrelMail Configuration : Read: config_default.php (1.4.0) ←Main Menuの10を選択
---------------------------------------------------------
Language preferences
1. Default Language: ja_JP ←日本語の指定
2. Default Charset:iso-2022-jp ←日本語コードの指定

《 D》SquirrelMail Configuration : Read: config_default.php ←Main MenuのDを選択 IMAPサーバの指定
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

Please select your IMAP server:

Command >> dovecot [ENTER] ←IMAPサーバを指定
Press enter to continue...[ENTER]

---------------------------------------------------------
Command >> s ←Main Menuですべての設定を保存
Data saved in config.php
Press enter to continue... [ENTER]

Command >> q [ENTER] ←設定を終了

エ 添付ファイルの文字化け対策
# vi /var/www/html/squirrel/functions/i18n.php
case 'downloadfilename':
       $useragent = func_get_arg(2);
       if (strstr($useragent, 'Windows') !== false ||
           strstr($useragent, 'Mac_') !== false) {
           $ret = mb_convert_encoding($ret, 'SJIS', 'AUTO');
       } else {
$ret = mb_convert_encoding($ret, 'UTF-8', 'AUTO'); ←「SJIS」を「UTF-8」に変更する。
}

# vi /var/www/html/squirrel/src/view_text.php
$header = $message_ent->header;
$type0 = $header->type0;
$type1 = $header->type1;
$charset = $header->getParameter('charset');
$charset = 'EUC-JP'; ←追記する。
$encoding = strtolower($header->encoding);

オ SquirrelMailの動作確認
ブラウザのアドレス部分に http://localhost(もしくはサーバのIPアドレス)/squirrel/ と入力すると,ログイン画面が表示されることを確認する。
ユーザ名(例:s3101)とパスワード(例:s3101)を入力して認証が完了すると受信箱が表示されることを確認します。
SquirrelMailのログイン画面
図1 ログイン画面

カ SquirrelMailのログイン画像の変更
/var/www/html/squirrel/images/sm_logo.png がログイン画像のファイルです。
画像サイズ「308x111px」,ファイル形式「png」,ファイル名「sm_logo.png」で作成し,ファイルを置き換えれば,オリジナルなログイン画面が完成します。

(2) Roundcube (0.9.5) の設定

Roundcube公式サイトよりダウンロード

イ Roundcubeのインストール
# cd /var/www/html/ ←ダウンロードしたファイルは/var/www/html内に移動しておく
# tar zxfv roundcubemail-0.9.5.tar.gz ←解凍
# mv roundcubemail-0.9.5/ roundcube/ ←ディレクトリ名の変更
# chown -R apache. roundcube ←ディレクトリ内すべてを所有者とグループを「apache」に変更
# chmod 775 roundcube/logs ←アクセス権の変更
# chmod 775 roundcube/temp ←アクセス権の変更
# cd roundcube/config
# cp main.inc.php.dist main.inc.php ←ファイル名の変更
# cp db.inc.php.dist db.inc.php ←ファイル名の変更

ウ MySQLの設定
$ mysql -u root -p12345678

 データベースの作成
mysql> create database roundcube character set utf8;

 作成したデータベース「roundcube」にユーザ名「roundcube」,パスワード「roundcube」とし,全ての権限を与える
mysql> grant all privileges on roundcube.* to roundcube@localhost identified by 'roundcube';  

 ユーザ情報を反映
mysql> flush privileges;
mysql> exit

Bye

# cd /var/www/html/roundcube/SQL

# mysql -u roundcube -p roundcube < mysql.initial.sql ← テーブル情報をMySQLに取り込む。一つ目の「roundcube」はユーザ名,二つ目の「roundcube」はデーターベース名

Enter password: roundcube ← 上記「ウ」で設定したユーザ「roundcube」のパスワードを入力

エ Roundcubeの設定
# vi /var/www/html/roundcube/config/main.inc.php

$rcmail_config['log_driver'] = 'syslog'; ←syslog経由で/var/log/messagesにログを出力
$rcmail_config['default_host'] = 'localhost'; ←ホスト名を指定
$rcmail_config['smtp_server'] = 'localhost'; ←SMTPサーバを指定
$rcmail_config['enable_installer'] = false; ←FALSEの場合,インストローラは実行しない
$rcmail_config['mail_domain'] = 'pcroom.edu'; ←自ドメインを設定
$rcmail_config['language'] = ja_JP; ←日本語の指定
$rcmail_config['default_charset'] = 'ISO-2022-JP'; ←日本語コードの指定

# vi /var/www/html/roundcube/config/db.inc.php

$rcmail_config['db_dsnw'] = 'mysql://roundcube:roundcube@localhost/roundcube';
 ※ mysql://(ユーザ名)(パスワード)@(ホスト名)/(データベース名);

オ Roundcubeの動作確認
ブラウザのアドレス部分に http://localhost(もしくはサーバのIPアドレス)/roundcube/ と入力すると,ログイン画面が表示されることを確認します。
ユーザ名(例:s3101)とパスワード(例:s3101)を入力して認証が完了すると受信箱が表示されることを確認します。
※ ログ等(/var/log/messages,/var/www/html/roundcube/logs/)を見てエラーが表示されていないことを確認してください。
Roundcubeのログイン画面
図2 ログイン画面

カ 動作確認後の作業
インストールディレクトリを削除
# rm -rf /var/www/html/roundcube/installer/

4 PHPアクセラレータ

 PHPアクセラレータとは,一度実行されたPHPスクリプトが中間形式にコンパイルされたデータをキャッシュに保存し,次にアクセスするときにこのキャッシュファイルを利用することで処理が高速になるものです。
 導入する理由は,RoundcubeMailを授業で約40名が一斉にアクセスするとログイン画面が表示されるまでに時間がかかったり,場合によってはタイムアウトでエラー表示となったりしてログインすることができないことがあったからです。
PHPアクセラレータには, と,代表的なものがあります。その中で『XCache』のみがPHP5.5まで対応しています。

(1) XCacheのインストール

ア PHP5-develがインストールされているか確認
# rpm -q php5-devel

php5-devel-5.5.6-1vl6.i686

と返ってくればインストールされています。「インストールされていません」と表示されればインストールをしてください。

イ XCacheをインストールする前に一度ベンチマークで確認
# ab -n 100 -c 100 http://localhost/roundcube/

Requests per second 3.09 [#/sec] (mean) 1秒間の平均リクエスト数(数値が大きいほど性能が良い)
Time per request 32385.366 [ms] (mean) 1アクセス当たりの処理にかかった時間
Transfer rate 16.93 [Kbytes/sec] received 1秒間の転送サイズ
※ 一部省略

ウ ダウンロードと解凍
# wget http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.gz (2013.11.20現在最新)
# tar zxfv xcache-3.1.0.tar.gz ←解凍
# chown -R root. xcache-3.1.0 ←所有者,グループを「root」に変更
# cd xcache-3.1.0

エ インストール
# phpize
# ./configure --enable-xcache
# make

(略)
Build complete.
Don't forget to run 'make test'.

# make test
# make install

Installing shared extensions:   /usr/lib/php5/ ←この情報を記録をする

# cp /etc/php5/php.ini /etc/php5/php.ini.bak ←PHPの設定ファイルのバックアップをとっておく
# cat xcache.ini >> /etc/php5/php.ini ←php.iniにXCacheの設定ファイルを追記する

PHP.iniを変更する
# vi /etc/php5/php.ini

extension = /usr/lib/php5/xcache.so ←上記で記録したインストール先を指定する

apache2の再起動
# /etc/rc.d/init.d/apache2 restart

Apache2 HTTP Serverを停止中:  [  OK  ]
Apache2 HTTP Serverを起動中:  [  OK  ]

インストールが完了したか確認
# php -v

PHP 5.5.6 (cli) (built: Nov 14 2013 21:20:24)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with XCache v3.1.0, Copyright (c) 2005-2013, by mOo
with XCache Cacher v3.1.0, Copyright (c) 2005-2013, by mOo

# vi /var/www/html/info.php ←新規作成
<?php
phpinfo();

?>

ブラウザのアドレス部分に http://localhost/info.php と入力すると図3が表示される。XCacheが動作していることを確認できます。

phpinfomationの一部
図3 phpinfomationの一部

オ XCacheを動作後,ベンチマークで確認
# ab -n 100 -c 100 http://localhost/roundcube/
  インストール後 インストール前  
Requests per second 6.21 3.09 [#/sec] (mean)
Time per request 16092.030 32385.366 [ms](mean)
Transfer rate 34.07 16.93 [Kbytes/sec]received
どの数値も向上しています。

カ adminの設定
# cp -a ./htdocs /var/www/html/xcache ←Xcacheを解凍したフォルダに移動して実行

adminのパスワード生成
# vi /var/www/html/ps.php
<?php
echo md5("30383038");
?>

ブラウザのアドレス部分に http://localhost/ps.php と入力するとパスワードが自動生成される(図4)。生成されたパスワードをコピーする。

パスワードを生成
図4 パスワードを生成

# vi /etc/php5/php.ini
xcache.admin.user = "admin"
xcache.admin.pass = "2cb076263622d4cf1555560d01717de4"

apache2の再起動
# /etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを停止中:  [  OK  ]
Apache2 HTTP Serverを起動中:  [  OK  ]

ブラウザのアドレス部分に http://localhost/xcache と入力すると,上記で作成したユーザで認証されれば図5が表示される。

XCahceのadmin画面
図5 XCahceのadmin画面

キ 作業ファイルの削除
# rm /var/www/html/ps.php
# rm /var/www/html/info.php
# rm /root/xcache-3.1.0.tar.gz
# rm -rf /root/xcache-3.1.0

(2) XCacheの導入後

 PHPアクセラレータ導入後,ベンチマークの数値が向上しました。実際に1クラス約40名で実施したところ,Roundcubeでもスムーズに授業展開ができる程度まで改善しました。 今回使用したサーバよりももう少しスペックの高いサーバであると問題なく使えるのではないかと思います。 また,事前にデータをキャッシュに残す工夫をすると,より早くアクセスができるのではないでしょうか。

5 WebMailの使い方

(1) SquirrelMailの使い方

ア メールを受信する方法
(ア) 左側にある「受信箱」をクリックする。
(イ) (メールをチェックする)をクリックする。
(ウ) 件名をクリックすると,本文が表示されます。

件名の前に「+」があると添付ファイルが存在することを示しています。
SquirrelMailの受信箱
図6 SquirrelMailの受信箱


イ メールの作成と送信
(ア) 上部にある「メッセージ作成」をクリックします。To(宛先),Cc,Bccに入力するアドレスは,校内のみの利用となるので,ユーザ名(ホスト名)のみの指定で送信することができます。
(イ) Subject(件名)の下または本文の下にある「送信」ボタンをクリックする。送信されたメールは,ディレクトリ「Sent」に移動します。
SquirrelMailのメッセージ作成
図7 SquirrelMailのメッセージ作成


ウ 添付ファイルの開け方
(ア) 件名の前に「+」が表示されているメールを選択する。
(イ) 本文の下に「添付ファイル」のリンクがあるので「ファイル名」または「ダウンロード」をクリックする。
(ウ) 添付ファイルを「開く」か「保存する」を選択します。
SquirrelMailの添付ファイル
図8 SquirrelMailの添付ファイル


エ 利用を終了する場合は必ずリンク「ログアウト」(右上)をクリックしてログアウトをします。

(2) Roundcube

ア メールを受信する方法
(ア) 受信箱(左側)をクリックする。
(イ) 再読み込み再読み込み(上部左側)をクリックする。
(ウ) 件名をクリックすると本文が下部に表示されます。

メールの右側に「(クリップ)」アイコンが表示されていれば添付ファイルが存在します。
Roundcubeの受信箱
図9 Roundcubeの受信箱

イ メールの作成と送信
(ア) メッセージの作成メッセージの作成をクリックします。

(イ) 宛先,Cc,Bccに入力するメールアドレスは,「s3101@pcroom.edu」のように@以降を省略しないでください。
Cc,Bccにメールアドレスを入力する場合は,宛先の下にある「写し(Cc)を追加」,「隠した写し(Bcc)を追加」をクリックしてください。
(ウ) 送信送信をクリックします。
(エ) 送信されたメールは,ディレクトリ「送信済み」に移動します。
Roundcubeのメールの作成
図10 Roundcubeのメールの作成

ウ 添付ファイルの開け方
(ア) 件名の右側にクリップアイコンクリップアイコンが表示されているメールを選択をします。
(イ) 下部に表示されている添付ファイル名をクリックすると添付ファイルの内容が表示されます。
Roundcubeの添付ファイル
図11 Roundcubeの添付ファイル

エ 利用を終了する場合は必ず右上のログアウトログアウトをクリックをします。

6 WebMailの活用法

(1) 授業展開例

・ CC,BCCの使い方について(解説は省略をします)
・ チェーンメールを受信した場合の対応
・ 受信側に無いソフトウェアで保存されたファイルが添付されていた場合
・ 添付ファイルにウィルスが入っていた場合の対応
・ ログインについて『 https://〜 』

について本校で実践してきました。図12〜14は,授業で利用したメールです。

ア チェーンメールを受信した場合の対応
チェーンメールを受け取った場合どのような対応が望ましいかを考えさせる。
チェーンメール
図12 チェーンメール

イ 受信側に無いソフトウェアで保存されたファイルが添付されていた場合
ファイルの中身を見ることができません。送信者は,画像であればjpg,gif,png等に変換をして添付することを指導します。
また,容量が大きい画像ファイルである場合は,分割して送信する工夫も必要であることを指導します。 添付ファイル
図13 添付ファイル

ウ 添付ファイルにウィルスが入っていた場合の対応
授業ではフリーソフトのウィルス対策ソフトウェアを導入し,添付ファイルをダウンロードしたり開いたりして,ウィルス対策ソフトウェアが動作することを確認します。
※ 添付ファイルは,すぐ開かないように注意することがこの実習で理解できる。また,ウィルス対策ソフトウェアが最新であれば,ウィルスを駆除してくれることも理解する。
ウィルスメール
図14 ウィルスメール

エ ログインについて『 https://〜 』
ログイン時に使用するユーザ名とパスワードなどの個人データは,ネットワーク上を平文で流れてしまうため,パケットキャプチャソフトウェアでデータを見るとパスワードが丸見え状態となっていることを,実際にパケットキャプチャソフトウェアで確認をします。

ネットワークキャプチャ
図15 ネットワークキャプチャ
図15には,「login_username=s3001&secretkey=s3001」が表示されていることが確認できます。
個人情報を入力する際は,アドレスの部分で「https://〜」または,アイコン「アイコン」が表示してあることを確認します。
※ 今回は,SSLの設定をしていないので体験をすることができません。

(2) 一斉送信

授業では,約40名の生徒に対してメールを一斉送信する必要があります。時間をかけずに簡単に送信する方法を紹介します。
Postfixでエイリアスの設定
# less /etc/postfix/main.cf (確認)

alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

# vi /etc/postfix/aliases (最終行に追加)

s3001 : s3101, s3102, …, s3140 ←最終行に追加 グループ : ユーザ
s3002 : s3201, s3202, …, s3240


データファイルの更新
# newaliases

使い方
宛先(To)に,s3001@pcroom.eduをに設定する。件名・本文・添付については,通常設定すればグループに登録されたユーザへ一斉に送信されます。
<補足> ユーザ「s3001」がなくても一斉送信はできます。

イ スクリプトを利用
ブラウザのアドレス部分に http://www2.pcroom.edu(もしくはサーバのIPアドレス)/sendmail.php と入力。(以下のサンプルソースは,/var/www/html/内にコピーしてあるものとする。)
図16のように,配布するメールとグループを選択するウェブページが表示されます。
送信する項目を選択し「一斉送信開始」ボタンをクリックすれば選択した生徒全員にメールが送信されます。
一斉送信の選択
図16 一斉送信の選択

(ア) サンプルソースについて
今回作成したサンプルは以下のとおりです。
ダウンロード:sendmail.zip  (ただし,「eicar.com」は含まれていません)

sendmail.php 一斉送信の本体(メールの種類・グループの選択)送信者の変更,メールの内容の変更
send_mail-class.php 一斉送信するクラス(変更しない)
file1.txt チェーンメールの本文(文字コード:UTF-8N,改行コード:CRLF)
pohoto.psp ペイント系ソフトウェアで保存したファイルです。(※PaintShopProのソフトウェアが導入されていれば変更してください)
user.csv 送信者のグループ分け。(Excelで作成して,CSV形式で保存したものです)

(イ) サンプルソースのメール内容を改編する場合(原則,メールは3通となります。)
sendmai.php

5行目
$from_address='teacher@pcroom.edu';  宛先のアドレスは,各自の環境に合わせてください。(ユーザ「teacher」がなくても送信ができます。)

6行目
$file_user='user.csv';  送信するメールアドレスとそのグループ分けが入ったファイルです。

10行目〜20行目
(添付ファイルなしのメール)
$title[0] = '伝達ゲーム【至急】'
$body[0] = '';
$file[0] = 'file1.txt';  (本文)

(添付ファイルありのメール)
$title[1] = '添付ファイル';
$body[1] = "きれいな写真が撮れたので送ります。\n※ 一斉送信のため返信は不要です。";
$file[1] = 'photo.psp';  (※PaintShopProのソフトウェアが導入されていれば変更してください)

(添付ファイルありのメール)
$title[2] = '添付ファイル【重要】';
$body[2] = "添付ファイルを見てください。\n※ 一斉送信のため返信は不要です。";
$file[2] = 'eicar.com';  (以下の手順で作成してください)

(ウ) ウィルス対応の実習をする場合は,メモ帳に下記の内容を貼り付け,ファイル名を「eicar.com」として保存して利用してください。

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

※ 作成しているパソコンにアンチウィルスソフトウェアが稼働していると駆除されますので注意してください。
※ eicar.comは,EICARが開発したアンチウィルスソフトウェアの応答をテストするためのファイルです。


(エ) グループを作成する場合(メールアドレスが,どのグループに入るかを指定します)
user.csv
3a,s3101@pcroom.edu
3a,s3102@pcroom.edu
3b,s3201@pcroom.edu
3b,s3202@pcroom.edu
3c,s3301@pcroom.edu
3c,s3302@pcroom.edu
21,s2101@pcroom.edu
グループ名は,半角英数字のみ。
1列目は,グループ名。2列目は,メールアドレスです。
CSV形式でファイル名を「user.csv」として保存をします。
ファイル名を変更する場合は,「sendmail.php」の6行目「$file_user='user.csv';」を変更してください。

7 最後に

約40名の生徒が授業で同時にWebMailを利用した場合、「SquirrelMail」と「Roundcube」を比較するとそれぞれ次のようなメリット,デメリットがありました。
SquirrelMail
視覚的にはやや古さを感じますが,約40名が一斉に操作をしても,またサーバのスペックが低くても,とても機敏に動作をします。しかし,インストール時に日本語化から諸設定に時間がかかるという難点があります。


Roundcube
視覚的にはとても良く,直感的に操作ができる点や日本語化するパッチをあてる必要がないためとても魅力的だと思いました。サーバ内での処理が多く,非力なサーバでは画面を表示するのに時間がかかりますが,PHPアクセラレータをインストールすることで,その問題点も解消することができます。サーバのスペックを上げることが一番よいかと思います。
 WebMailは,利用者がIMAPサーバ,POP3サーバ,SMTPサーバ等,メールソフトウェアの設定をする必要がありません。使用者はユーザ名とパスワードを入力するだけでログインして利用することができ,サーバにつながる環境であればどこからでもメールを読み書きすることができます。実習室のパソコンが故障した場合にも他のパソコンで対応することができ,さらに,受信したメールがウェブブラウザのキャッシュに残ってしまう心配もありません。ユーザやメールの管理においても,サーバ側で管理ができるので管理者の負担を減らすことにもなります。実習室でWebMailを構築して活用するメリットは多くあります。


本コンテンツに掲載されているすべてのブランド名と製品名,商標及び登録商標はそれぞれの帰属者の所有物です。本コンテンツでは©,®,TM などは明記してありません。