我想通常发送视图作为电子邮件的正文。以电子邮件的形式发送渲染的视图
最简单的方法是什么?
例如:我有pages/reports.html.erb,我想发送如果您作为电子邮件正文访问该路径时看到的页面。
是否有某种方法可以将呈现的html分配给电子邮件的主体变量?
此外,我想包括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
注:我使用的是轨道3.1 mongoid 2数据库,并在Heroku sendgrid是否有帮助
编辑:我最后什么了做:
替换#something在这里?用:
email_obj = {}
email_obj.to = params[:email]
email_obj.from = '[email protected]'
email_obj.subject = 'Report'
email_obj.body = render_to_string(:template => "pages/reports", :layout => false)
ReportsMailer.deliver_report(email_obj).deliver
和在所述邮件收发器类寄件人/ reports_mailer.rb
class ReportsMailer < ActionMailer::Base
default from: "[email protected]"
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 %>
好像我可以做一个呈现在控制器操作字符串,并发送包含电子邮件是主体数据,感谢指针 - 我明天会试试看看它是否有效。 –