基本郵件程式
此示例使用四個不同的檔案:
- 使用者模型
- 使用者郵件
- 電子郵件的 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!