ステージングサーバーで、mailcatcher をMTAとして使用する設定(Centos7 nginx)


ウェブサイトの立ち上げの際に、メール機能のテストに便利なのが mailcatcher 。

これを、ローカルではなく、ステージングサーバーでメインのMTAとして動かすようにしてみたので、その際の設定を書いてみる。

前提として、システムワイドにインストールしたrbenv上にrubyをインストールしています。

まずはもちろん、mailcatcher のインストール

# gem install mailcatcher

既存のMTA(postfix)の停止&無効化

# systemctl stop postfix
# systemctl disable postfix

systemdコントロールに追加

# vi /etc/systemd/system/mailcatcher.service
[Unit]
 Description=Mailcatcher Service

[Service]
 Type=simple
 ExecStart=/usr/local/rbenv/shims/mailcatcher --foreground --smtp-port 25

[Install]
 WantedBy=multi-user.target

mailcatcherの起動&有効化

# systemctl start mailcatcher
# systemctl enable mailcatcher

nginxの設定。http://mail.[ドメイン名]/ でアクセスできるようにしています。

# vi /etc/nginx/conf.d/mailcatcher.conf
server {
  listen 80;
  server_name mail.[ドメイン名];
  keepalive_timeout 5;

  location / {
    proxy_pass http://127.0.0.1:1080/;
  }
 
  location ~ ^/assets {
    proxy_pass http://127.0.0.1:1080;
  }

  location ~ ^/messages {
    proxy_pass http://127.0.0.1:1080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

DNSの設定は、よしなに。

以上で、 http://mail.[ドメイン名]/ から mailcathcer のメールを確認することができるようになりました。

 

参考URL


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です