Actionmailerで解析できるはずなのだけど、うまくできなかったのでTmailで実現してみた。
まず対応するモデルを作成
ruby script/generate mailer Mailget
で、モデルを修正
require 'tmail'
require 'kconv'
class Mailget < ActionMailer::Base
def receive(email)
entry = Entry.new
mailadd = TMail::Mail.parse(email)
entry.from = mailadd.from[0]
entry.discription = mailadd.body.to_s.toutf8
entry.save
end
end
あとは、postfixで受信したメールを流してやる。
testアカウントできたメールを処理するように設定。
virtualの設定
# sudo vim /etc/postfix/virtual
下記を一番下に追記
test.example.com anything
test@test.example.com test
aliasesの設定
# sudo vim /etc/aliases
mailer-daemon: postmaster
postmaster: root
test: "| /usr/bin/ruby /var/www/mail/script/runner -e production 'Mailget.receive STDIN.read'" ※追記
これでpost@test.example.com宛にメールがきたら、解析して、DBに送信のメールアドレスと本文を日本語で入れる。
うまく処理されているかどうかをログで確認して終了
# vim /var/log/maillog
もしDBなどにうまく書き込めていなければ、パーミッションのエラーの可能性があるので、その時は
777などに変更してください。
0 件のコメント:
コメントを投稿