VCCW で構築したローカル環境 でテストメールを送信する

  • WordPress

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