Postfixを使ってテストメールを送る


今週はPostfixを使ってメールが送れるかどうかのテストをいっぱいしたので、それについてのまとめをしようと思います。

Postfixって何?

Postfixでテストメール送れることを教えてもらい散々使ってたけど、Postfixが何者か全然知らなかった・・・

Postfix(ポストフィックス)はフリーソフトウェア・オープンソースソフトウェアのメール転送エージェント(MTA)である。 Sendmailとの操作上の互換性を確保しつつ、管理・設定が容易で、高速・安全であることを指向して開発されている。 完全にUNIX用のMTAシステムとして設計されているため、UNIX上の他の多くのソフトウェアと連携が必要となる場合がある。 NetBSD、Mac OS X Serverなど、いくつかのUnix系OSで標準のMTAとして採用されている。

というものらしい。オープンソフトウェアだったんですね。参考:Wikipedia

使い方

1ヶ月前くらいに使い方教えてもらったのに忘れていたので、復習を。
Mac Book Proでやってます。

Postfixを起動する

sudo postfix start

メールのコントローラー(メーラーっていうのかな)の宛先を自分宛に変える(EMAIL_ADDRESSの部分)

mail({:to => EMAIL_ADDRESS ... })

Railsコンソールを立ち上げる

rails c

テストメールを送る

MailerController.method_name(AUGUMENT).deliver
※ポイントは.deliverをつけること。これをつけないと送られません。
Ruby on Rails だと同じクラス名のディレクトリの下にある同じメソッド名のhtml/testファイルをメールとして送ってくれます。
(例)

/app/mailer/user_mailer.rb
class UserMailer < ActionMailer::Base
  def recommend_mail(user)
    @user = user
    mail({:to => [email protected], :subject => "あなたにオススメ商品!"})
  end
end

みたいなコードがあったとしたら
/app/views/user_mailer/recommend_mail.html.erb
というファイルを作り、そこにメールの本文を書く。

テストメールが終わったら

Postfixを止めておきましょう。
sudo postfix stop