基本邮件程序
此示例使用四个不同的文件:
- 用户模型
- 用户邮件
- 电子邮件的 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!