参考
- mail() does not work out of the box · Issue #135 · docker-library/php
- DebianにおけるsSMTP導入方法とGmailを利用したメール送信方法のまとめ - Varg
自前でSMTPサーバーを準備すること。
サンプル
Dockerfile
FROM php:7.2-rc-apache
RUN apt update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y ssmtp
RUN echo 'sendmail_path = "/usr/sbin/ssmtp -t"' > /usr/local/etc/php/conf.d/mail.ini
RUN echo "FromLineOverride=YES" >> /etc/ssmtp/ssmtp.conf \
&& echo "Mailhub=SMTPサーバー:25" >> /etc/ssmtp/ssmtp.conf
run.sh
docker run -it --rm \
-v $(pwd)/html/:/var/www/html/ \
-p 8080:80 \
1ce5db3c0fdb
html/a.php
<?php
mail('to@example.jp','subject','body');
http://localhost:8080/a.php にアクセスしてメールがto@example.jp
に届くことを確認。