1. binthec

    Posted

    binthec
Changes in title
+Vagrant 上の CentOS6.7 で mailcatcher を使う
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,127 @@
+## 環境
+- vagrant
+- CentOS 6.7
+- ruby 2.4.3
+- (CakePHP2.10)
+
+## やりたいこと
+ローカルの環境からメールのテスト送信をしたい。mailcatcher だと便利だよ!と言われたので入れてみます。
+
+## 手順
+
+### 1. インストール
+ruby は既に入ってます。
+
+```
+$ gem install mailcatcher
+```
+
+途中で一回怒られました。
+
+```
+.
+.
+Building native extensions. This could take a while...
+ERROR: Error installing mailcatcher:
+ ERROR: Failed to build gem native extension.
+.
+.
+.
+checking for sqlite3.h... no
+sqlite3.h is missing. Try 'brew install sqlite3',
+'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
+.
+.
+```
+
+なんか足りないっぽいので、言われたとおりに不足してるのを入れてあげる。
+
+```
+$ sudo yum install sqlite-devel
+```
+すると、今度は成功。
+
+```
+Done installing documentation for sqlite3, daemons, thin, skinny, mailcatcher after 2 seconds
+5 gems installed
+```
+
+### 起動
+
+```
+$ mailcatcher
+Starting MailCatcher
+==> smtp://127.0.0.1:1025
+/home/vagrant/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/thin-1.5.1/lib/thin/server.rb:104: warning: constant ::Fixnum is deprecated
+==> http://127.0.0.1:1080
+*** MailCatcher runs as a daemon by default. Go to the web interface to quit.
+```
+
+### ブラウザで確認
+んで、メール受信画面をブラウザで見ようと思って、はたと気がついた。
+これ……Vagrant上じゃん……?
+http://127.0.0.1:1080
+って書いてあるけど、このURLで見られるわけないじゃん……?
+
+ためしにvagrantに割り振ってある 192.168.33.40:1080 にアクセスしてみるも、見られない。
+調べて見ると、ポートを指定して mailcatcher を起動するやり方があるらしい。ので、それをやろうと思ったら。
+
+```
+$ mailcatcher --http-ip 192.168.33.40
+Starting MailCatcher
+~~> ERROR: Something's using port 1025. Are you already running MailCatcher?
+==> smtp://127.0.0.1:1025
+==> http://192.168.33.40:1080
+```
+
+既に1050ポート使われてるんですけど、って怒られた。うん、知ってた。
+一回 mailcatcher 落とそうと思ったら、どうやらPID調べて kill しないといけないらしい……?
+
+ので、とりあえずPID調べてkillする。
+
+```
+$ netstat -tulpn | grep :1025
+$ kill -9 6253
+```
+
+そして、今度はIPアドレスを指定して起動。
+
+```
+$ mailcatcher --http-id=192.168.33.40
+```
+
+ブラウザでアクセスしてみます。
+http://192.168.33.40:1080
+
+![スクリーンショット 2018-01-29 14.05.36.png](https://qiita-image-store.s3.amazonaws.com/0/152333/5359d082-3056-502f-2131-9eeaaac00bbd.png)
+
+
+出来たー!
+
+## メール送信の設定
+CekePHP2.10の場合、メール設定はこんな感じ。
+ポートを1025に指定したら良いようです。
+
+```
+class EmailConfig
+{
+ public $mailcatcher = array(
+ 'transport' => 'Smtp',
+ 'from' => 'example@hoge.com',
+ 'host' => '127.0.0.1',
+ 'port' => 1025,
+ 'timeout' => 30,
+ 'client' => null,
+ 'log' => true,
+ 'charset' => 'utf-8',
+ 'headerCharset' => 'utf-8',
+ 'template' => 'default',
+ 'layout' => 'default',
+ );
+}
+```
+
+
+
+## 参考
+https://qiita.com/nanasess/items/8194ae76c1b94c9a7bb9