首页 > 解决方案 > 使用 Rails 在唯一用户电子邮件(带转发)下以电子邮件形式发送表单

问题描述

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

例子:

用户提交

{ 
  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"

如果回复生成的电子邮件 aka johnsmith@appdomain.com,应用程序应该能够将电子邮件转发到用户特定的电子邮件示例 johnsmith@gmail.com

任何帮助是极大的赞赏。

标签: ruby-on-railsrubyruby-on-rails-4namespacessendgrid

解决方案


保存用户后,您需要调用将通过邮件发送数据的 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 中用于发送相应的数据。


推荐阅读