【MailHog&Docker】ローカル開発環境でメール送受信をテストする
ローカル開発環境内でのメールの送受信・内容確認がしたく調べていたところ、
MailHogを利用するのが簡単そうでした。
導入についてメモしておきます。
環境
Docker
PHP : 8.0
Apache : 2.4
MailHog : 0.2.0
導入
ファイル構成
./ ├ app/ ├ env/ │ └ php-apache/ │ ├ Dockerfile │ └ php.ini └ docker-compose.yml
docker-compose.yml
version: '3.3' services: app: build: ./env/php-apache volumes: - ./app:/var/www/html ports: - 80:80 mailhog: image: mailhog/mailhog ports: - 1025:1025 - 8025:8025
Dockerfile
FROM php:8.0-rc-apache RUN apt-get update RUN apt-get install -y vim RUN curl -sSL https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 -o mhsendmail RUN chmod +x mhsendmail RUN mv mhsendmail /usr/local/bin/mhsendmail COPY ./php.ini /usr/local/etc/php/php.ini
php.ini
[Date] date.timezone = "Asia/Tokyo" [mbstring] mbstring.internal_encoding = "UTF-8" mbstring.language = "Japanese" [mail function] sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025"
これらの設定を行ったうえでコンテナを起動し、
mail($to, $subject, $message, $headers);
mail関数を呼び出せばメールの送信が可能になります。
送受信したメールはブラウザで8025番ポートにアクセスすると確認ができます。