PHP
laravel
homestead

laravel+mailhogでメールの仮想環境を作る

以下の物を使用
homestead 6.5
PHP7
Nginx
Vagrant

mailhogがhomesteadに含まれているので
Laravelの仮想環境をhomesteadで作成した人は簡単にメール送信のテストができるようになります。

mailhogが動いているか確認

sudo lsofc -i:1025

結果が

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mailhog 1195 vagrant    3u  IPv6  17743      0t0  TCP *:1025 (LISTEN)

となっていればmailogが動いています。

Vagrantfileに追記

config.vm.network :forwarded_port, host: 8025, guest: 8025

ここでVMが起動済みならば再起動

iptablesの追加

sudo iptables -A INPUT -p tcp -m tcp --dport 8025 -j ACCEPT
sudo /etc/init.d/iptables-persistent save

iptables-persistentがなかったら

sudo apt-get install iptables-persistent

php.iniを修正

/etc/php/7.1/fpm/php.ini
/etc/php/7.1/cli/php.ini
sendmail_path = "/usr/local/bin/mailhog sendmail test@example.org"

サービスの再起動

sudo /etc/init.d/php7.1-fpm restart
sudo /etc/init.d/nginx restart

.envの修正

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

ブラウザからアクセス

http://localhost:8025/

これで設定完了です。
Laravelで作成中のプログラムからmailを飛ばしてみて、
mailhog側で見れればOKです。