我正在使用mail_form + simple_form gems在用户在我的网站上提交“联系我们”表单后向我自己发送电子邮件。然后我还将字段提交到数据库。这里的一切都很好。
我希望能够在提交后直接向用户的电子邮件地址发送第二封电子邮件,并附上“谢谢”消息和其他一些副本。我知道可以使用flash发布消息,但在我的情况下,向用户发送的电子邮件会更好。
有人可以根据下面的代码提供一些指导吗?谢谢!
型号:page.rb
class Page < ActiveRecord::Base
include MailForm::Delivery
attribute :name, :validate => true
attribute :company
attribute :email, :validate => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
attribute :message
attribute :nickname, :captcha => true
def headers
{
:subject => "New Lead from Composites First",
:to => "myemail@myemail.com",
:from => "myemail@myemail.com"
}
end
end
Controller:pages_controller.rb
class PagesController < ApplicationController
def index
end
def basicform
@page = Page.new
end
def create
@page = Page.create(page_params)
if @page.save
respond_to do |format|
format.html { redirect_to '/' }
format.json { }
end
else
respond_to do |format|
format.html { }
format.json { }
end
end
@page.request = request
if @page.deliver
else
flash[:error] = 'Cannot send message.'
format.html { redirect_to '/' }
end
end
private
def page_params
params.require(:page).permit(:name, :company, :email, :message)
end
end
答案 0 :(得分:0)
您可以编写after_create
回调来触发感谢电子邮件。
在Page模型中写回调如下:
after_create :send_thank_you_email
def send_thank_you_email
email = self.from
MyMailer.send_thank_you_email(email).deliver_now
end
现在在MyMailer
中编写send_thank_you_email
操作并创建邮件程序视图以感谢您的邮件。希望这可以帮助。谢谢!