AWS EC2 AmazonLinux2インスタンスにMailCatcherを導入する

# 目的

- MailCatcherの実装方法をまとめる。

# 追記

- MailCatcherは2021年6月でlatestの更新が止まっています。もしかすると大体のツールをつかったほうが良いかもしれません。

# 前提条件

- 下記、または下記に準ずる方法でCentOS7のPCが構築されていること。
    - [Cent0S7をPCにインストールする](https://miriwo.hatenablog.com/entry/2020/08/09/144030)

# 前提情報

- 本説明で実行するコマンドは特筆しない場合、CentOS7のPCにssh接続を行い実行する物とする。

# 読後感

- MailCatcherを起動しブラウザから確認することができる。
- 筆者は下記作業後のインスタンスに対しMailCatcherの導入を実施する。
    - [AWS EC2 AmazonLinux2だけでLaravelのアプリをデプロイする](https://qiita.com/miriwo/items/b39d1ac6289c54cc2cfd)
- `http://インスタンスのグローバル（パブリック）IPv4アドレス:1080`でMailCatcherをブラウザで表示することができる。

# 概要

1. インスタンスのグローバルIP確認
1. セキュリティグループの作成
1. セキュリティグループの追加
1. Rubyのインストール
1. 使用パッケージのインストール
1. MailCatcherのインストールと起動
1. 確認

# 詳細

1. インスタンスのグローバルIP確認
    1. AWSにログインしてEC2のインスタンス一覧ページを開く。
    1. MailCatcherを導入するインスタンスを選択後下記部分を確認しグローバル（パブリック）IPv4アドレスとプライベートIPアドレスをそれぞれ別々に確認しメモしておく。

        ![インスタンス___EC2_Management_Console-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/96eceaeb-2c05-d78f-5b8e-51c4f602882a.png)

1. セキュリティグループの作成
    1. 下記記事内容を実施してMailCatcher用のセキュリティグループを追加する。
        - [AWS MailCatcher用のセキュリティグループを追加する](https://qiita.com/miriwo/items/f458bcd8996cc76d7290)
1. セキュリティグループの追加
    1. 下記記事内容を実施して先に作成したMailCatcher用のセキュリティグループをインスタンスに追加する。
        - [AWS EC2 インスタンスにセキュリティグループを追加する](https://qiita.com/miriwo/items/52d600ba26cc7a73da1c)
1. Rubyのインストール
    1. 下記コマンドを実行してRubyをインストールする。

        ```terminal
        $ sudo yum install ruby
        ```
1. 使用パッケージのインストール
    1. 下記コマンドを実行してruby-develをインストールする。

        ```terminal
        $ sudo yum install ruby-devel
        ```
    1. 下記コマンドを実行してgcc-c++をインストールする。

        ```terminal
        $ sudo yum install gcc-c++
        ```
    1. 下記コマンドを実行してsqlite-develをインストールする。

        ```terminal
        $ sudo yum install sqlite-devel
        ```
1. MailCatcherのインストールと起動
    1. 下記コマンドを実行してMailCatcherをインストールする。

        ```terminal
        $ gem install mailcatcher
        ```
    1. 下記コマンドを実行してMailCatcherを起動する。指定するのは**MailCatcherを導入したインスタンスのプライベートIPアドレス**なので注意すること！！！！（「ERROR: Something's using port 1025. Are you already running MailCatcher?」が出た方はこちら→[MailCatcher起動時にAre you already running MailCatcher?のエラーが出た]()）

        ```terminal
        $ mailcatcher --ip プライベートIPアドレス
        ```
1. 確認
    1. ブラウザで下記にアクセスする。指定するのは**MailCatcherを導入したインスタンスのグローバル（パブリック）IPアドレス**なので注意すること！！！！
        - [http://MailCatcherを導入したグローバルIPアドレス:1080](http://MailCatcherを導入したグローバルIPアドレス:1080)
    1. 下記のページが表示されることを確認する。

    ![MailCatcher _0_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/9c1cb580-82d5-b992-1d3e-c6204fd2b089.png)

# 参考文献

- [LaravelでMailCatcherを利用してテストメールを送信する](http://vdeep.net/laravel-mailcatcher)
- [MailCatcher 公式](https://mailcatcher.me/)
- [MAILCATCHERを使ったメール送信テスト](https://laravel10.wordpress.com/2015/02/23/mailcatcher%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1%E3%83%86%E3%82%B9%E3%83%88/)
- [https://github.com/estelora/mailcatcher-demo](https://github.com/estelora/mailcatcher-demo)
- [https://erorr.org/217/](https://erorr.org/217/)
- [https://wiki.rookie-inc.com/development/mailcatcher](https://wiki.rookie-inc.com/development/mailcatcher)
- [https://www.d-wood.com/blog/2013/05/22_3674.html](https://www.d-wood.com/blog/2013/05/22_3674.html)