VCCW は Vagrant と Virtualbox を使用して WordPress のローカル環境を構築するための便利な設定をまとめたものです。
ローカル環境からテストメールを送信する場合、postfix や sendmail などを入れる方法もありますが VCCW はデフォルトで Mailcatcher と呼ばれるテスト用 SMTP サーバーとして動作するアプリケーションが入っています。
今回はこちらを使用してテストメールを送ります。
Mailcatcher の起動
まず vagrant を起動し、ssh で接続します。
vagrant ssh
mailcatcher コマンドで起動します。
mailcatcher --http-ip 192.168.33.10
--http-ip
の後ろの ip は vagrant に割り当てた ip アドレスになります。
うまく起動できたら、上の例でいうと192.168.33.10:1025
で受信トレイにアクセスできるはずです。送られたメールが全てここに入ってきます。
ip アドレスは site.yml もしくは vagrantfile に記載してあると思います。
既に mailcatcher が起動していたら
mailcatcher 起動時に下記のメッセージが出たら、既に起動済みの可能性があります。
ERROR: Something’s using port 1025. Are you already running MailCatcher?
mailcatcher は ip アドレスを指定しないと localhost(127.0.0.1) で起動してしまいます。この時に意図した ip で接続できなければ、一旦プロセスを kill してから再度起動してあげると良いです。まず 1025 を使用しているプロセスを確認します。
netstat -tulpn | grep :1025
PID を確認、
tcp 0 0 localhost:1025 *:* LISTEN <PIDが入るはずだぜ>/ruby2.3
この PID を使って kill します。
kill -9 <PIDだぜ>
これで再度上で紹介したやり方で ip アドレスを指定して起動して見てください。
Mailcatcher で全角文字が送信できない
Mailcatcher のバージョンによっては、全角文字(UTF-8)の扱いに問題があるらしく、送信処理すら行われないようです。いったん削除してから再度インストールしてやり直してみてください。2019/11現在では 0.5.12 なら送信できるようです。
gem uninstall mailcatcher
gem install mailcatcher -v 0.5.12
古いバージョンを使い続けるというのもどうなのかと思いますが、今後アップデートで改善されるかもしれません。
参考
https://qiita.com/binthec/items/40772549b5cd1af4caf1
https://github.com/sj26/mailcatcher/issues/201