基本郵件程式

此示例使用四個不同的檔案:

  • 使用者模型
  • 使用者郵件
  • 電子郵件的 html 模板
  • 電子郵件的純文字模板

在這種情況下,使用者模型呼叫郵件程式中的 approved 方法並傳遞已批准的 post(模型中的 approved 方法可以通過回撥,控制器方法等呼叫)。然後,郵件程式使用來自傳入的 post 的資訊(例如標題)從 html 或純文字模板生成電子郵件。預設情況下,郵件程式使用與郵件程式中的方法同名的模板(這就是郵件程式方法和模板都具有已批准名稱的原因)。

user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: "donotreply@example.com"

  def approved(post)
      @title = post.title
      @user = post.user
      mail(to: @user.email, subject: "Your Post was Approved!")
  end
end

user.rb

def approved(post)
    UserMailer.approved(post)
end

approved.html.erb

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Post Approved</title>
    </head>
    <body>
        <h2>Congrats <%= @user.name %>! Your post (#<%= @title %>) has been approved!</h2>
        <p>We look forward to your future posts!</p>
    </body>
</html>

approved.text.erb

Congrats <%= @user.name %>! Your post (#<%= @title %>) has been approved!
We look forward to your future posts!