在 rails 中向两个收件人发送表单
sending a form to two recipients in rails
我有一个 rails 模型 registrations
具有以下字段
attr_accessible :address, :company, :name, :phone, :email
我已经能够通过用户填写的电子邮件成功地向用户发送邮件,并且使用 action mailer 成功地工作
def create
@registration = Registration.new(params[:registration])
respond_to do |format|
if @registration.save
UserMailer.registration_confirmation(@registration).deliver
format.html { redirect_to root_path, notice:" Thanks! #{@registration.name}, Your registration have been
confirmed & your seat reserved" }
format.json { render :show, status: :created, location: @registration }
else
format.html { render action: "new" }
format.json { render json: @registration.errors, status: :unprocessable_entity }
end
end
end
注册邮件是这样的
def registration_confirmation(registration)
@registration = registration
@greeting = "Hi"
mail(to: @registration.email, subject: 'Welcome')
end
效果很好...
我想要实现的是能够将邮件发送到另一个电子邮件地址,例如 (admin@gmail.com) 说明用户已注册并显示注册详细信息...谢谢
我会专门为应该发送给管理员的通知生成一个新的邮件程序。
rails g mailer AdminMailer registration_notice
然后您可以将 AdminMailer registration_notice 编辑为类似于您的 UserMailer,但收件人不同:
def registration_notice(registration)
@registration = registration
mail(to: 'admin@gmail.com', subject: 'A new user has registered')
end
将您想包含的任何注册详细信息放入 registration_notice.html.erb(或文本)的视图中。
然后只需在控制器的创建操作中添加对邮件程序的调用,就在对 UserMailer 的调用之后:
def create
@registration = Registration.new(params[:registration])
respond_to do |format|
if @registration.save
UserMailer.registration_confirmation(@registration).deliver
AdminMailer.registration_notice(@registration).deliver
# etc
end
end
end
您可能还想考虑在后台发送邮件,而不是让用户等待创建请求完成,但这超出了这个问题的范围。
我有一个 rails 模型 registrations
具有以下字段
attr_accessible :address, :company, :name, :phone, :email
我已经能够通过用户填写的电子邮件成功地向用户发送邮件,并且使用 action mailer 成功地工作
def create
@registration = Registration.new(params[:registration])
respond_to do |format|
if @registration.save
UserMailer.registration_confirmation(@registration).deliver
format.html { redirect_to root_path, notice:" Thanks! #{@registration.name}, Your registration have been
confirmed & your seat reserved" }
format.json { render :show, status: :created, location: @registration }
else
format.html { render action: "new" }
format.json { render json: @registration.errors, status: :unprocessable_entity }
end
end
end
注册邮件是这样的
def registration_confirmation(registration)
@registration = registration
@greeting = "Hi"
mail(to: @registration.email, subject: 'Welcome')
end
效果很好...
我想要实现的是能够将邮件发送到另一个电子邮件地址,例如 (admin@gmail.com) 说明用户已注册并显示注册详细信息...谢谢
我会专门为应该发送给管理员的通知生成一个新的邮件程序。
rails g mailer AdminMailer registration_notice
然后您可以将 AdminMailer registration_notice 编辑为类似于您的 UserMailer,但收件人不同:
def registration_notice(registration)
@registration = registration
mail(to: 'admin@gmail.com', subject: 'A new user has registered')
end
将您想包含的任何注册详细信息放入 registration_notice.html.erb(或文本)的视图中。
然后只需在控制器的创建操作中添加对邮件程序的调用,就在对 UserMailer 的调用之后:
def create
@registration = Registration.new(params[:registration])
respond_to do |format|
if @registration.save
UserMailer.registration_confirmation(@registration).deliver
AdminMailer.registration_notice(@registration).deliver
# etc
end
end
end
您可能还想考虑在后台发送邮件,而不是让用户等待创建请求完成,但这超出了这个问题的范围。