使用rails在唯一的用户电子邮件(带转发)下将表单作为电子邮件发送

时间:2018-05-31 03:01:10

标签: ruby-on-rails ruby ruby-on-rails-4 namespaces sendgrid

作为用户,我想提交一份表单,该表单将在表单中发送包含提交信息的电子邮件。

示例:

用户提交

{ 
  user_id: "25"
  user_name: "johnsmith"
  info: "hello world"
  to: "email@domain.com"
}

目标是以下列格式发送电子邮件:

from johnsmith <johnsmith@appdomain.com>
to: email@domain.com
content: "hello world"

如果有人回复生成的电子邮件地址johnsmith@appdomain.com,该应用应该可以将电子邮件转发给用户特定的电子邮件示例johnsmith@gmail.com

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

保存用户后,您需要调用UserMailer,您将通过邮件发送数据

UserMailer.send_data(user.id).deliver

user_mailer.rb

class UserMailer < ApplicationMailer

 def send_data(user_data)
  @user = User.find_by(id: user_data) 
  @user_name = @user.user_name
  @content = @user.content
  mail(:to => @user.email, :subject => "Successful Signup")
 end
end

请注意在相应的当前环境中设置邮件程序配置(例如:development.rb)

http://guides.rubyonrails.org/action_mailer_basics.html

上面定义的实例变量(@user_name,@ content)将在html中用于发送相应的数据。