我想发送通常是视图作为电子邮件正文的内容。
最简单的方法是什么?
例如:我有 pages/reports.html.erb,我想发送您在访问该路径时看到的页面作为电子邮件的正文。
有没有办法获取呈现的 html 并将其分配给电子邮件的 body 变量?
此外,我想将 PDF 版本作为附件包含在内。(我正在使用 wicked_pdf)
def reports
@email = params[:email]
#something here?
respond_to do |format|
format.html
format.pdf do
render :pdf => "usage_report"
end
end
end
注意:如果有帮助,我在数据库中使用带有 mongoid 2 的 rails 3.1 和 heroku 上的 sendgrid
编辑:我最终做了什么:
在这里替换#something?和:
email_obj = {}
email_obj.to = params[:email]
email_obj.from = 'reports@company.com'
email_obj.subject = 'Report'
email_obj.body = render_to_string(:template => "pages/reports", :layout => false)
ReportsMailer.deliver_report(email_obj).deliver
并在邮件类 mailers/reports_mailer.rb
class ReportsMailer < ActionMailer::Base
default from: "from@example.com"
def deliver_report(email)
@email = email
mail( :to => @email.to,
:subject => @email.subject,
:from => @email.from)
end
end
在reports_mailer/deliver_report.html.erb
<%= render :inline => @email.body %>