多摩大学経営情報学部では、2年の学生を対象に、「社長になって企業を経営する」「消費者として市場を形成する」という経験ができる「多摩大式経済経営ゲーム」を講義として実施しています。
このシステムは、裏では PHP / MySQL が動いていて、リアルタイムでオンラインショッピングができる仕組みになっています。現在のシステムは、2009 – 2010 年に私が作成したものを改良しながら使っています。
2023 年から、システムを Docker イメージとして起動できるように準備してきました。その甲斐あって(?)、ゲームサーバの HDD クラッシュを受けても、システム自体は、一つの機能を除いて問題なく復旧ができました。動かなかったのは、学生に対するパスワードのメール通知機能です。
直接システムが動作していたときは PHP の mail
コマンドでメールが送れていましたが、Docker 上のウェブサーバからは、SMTP を使用してメールを送信する必要があります。この作業メモです。
まずは msmtp
のインストール:
FROM php:apache
RUN apt-get update && apt install -y libonig-dev
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
RUN apt-get install -y msmtp msmtp-mta vim
COPY ./msmtprc /etc/msmtprc
RUN chown www-data:www-data /etc/msmtprc
RUN chmod 600 /etc/msmtprc
次に、gmail を踏み台にして送信する設定:
account default
host smtp.gmail.com
port 587
user ideharalab
password ********
from ideharalab@gmail.com
tls on
tls_starttls on
tls_certcheck off
auth on
logfile /var/log/msmtp.log
これで行くかな?