Railsアプリと連携して下記のことをしたい。
- メール受信でRailsアプリ内プログラム実行
- メールの中身を確認
今回はMacのローカル環境で検証します。
環境
手順
まずはメール受信できるように
1. Postfixの起動(元々入っている)
$ sudo postfix start
2.メール送信
$ mail <Macユーザー名>
件名入力 → 本文入力 → 最後にEnterで改行して、'.'を入力してEnter
3.メール確認
メールを受信することができました!
メール受信→プログラム実行してみる
1.プログラム作成
- mailin
$ vim /Users/fakiyer/rails_project/script/mailin
#! /usr/bin/env bash cd /Users/fakiyer/rails_project /Users/fakiyer/.rbenv/shims/rails runner -e development ‘Mailer.receive(STDIN.read)'
$ chmod 777 /Users/fakiyer/rails_project/script/mailin
- Mailer
def self.receive(mail) email = Mail.new(mail) body = email.body.decoded charset = email.charset body = body.force_encoding(charset).encode('utf-8') logger.info body end
2.Postfixのaliases設定
$ sudo vim /etc/aliases
... <Macユーザー名> fakiyer: "| /Users/fakiyer/rails_project/script/mailin”
$ sudo newaliases
3.Postfix実行ユーザー変更
- main.cf
#default_privs = nobody default_privs = fakiyer
$ sudo postfix start
4.メール送信
$ mail <Macユーザー名>
railsログにbodyの内容が出力されているはずです!