LoginSignup
10
7

More than 3 years have passed since last update.

Vagrant 上の CentOS6.7 で mailcatcher を使う

Last updated at Posted at 2018-01-29

環境

  • 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

2. 起動

$ 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.

3. ブラウザで確認

んで、メール受信画面をブラウザで見ようと思って、はたと気がついた。
これ……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

既に1025ポート使われてるんですけど、って怒られた。うん、知ってた。
一回 mailcatcher 落とそうと思ったら、どうやらPID調べて kill しないといけないらしい……?

ので、とりあえずPID調べてkillする。

$ netstat -tulpn | grep :1025
$ kill -9 6253

そして、今度はIPアドレスを指定して起動。

$ mailcatcher --http-ip=192.168.33.40

ブラウザでアクセスしてみます。
http://192.168.33.40:1080

スクリーンショット 2018-01-29 14.05.36.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',
    );  
}

参考

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7