Rails 3.2,如何更改:从邮件中的值改为默认(GMail)

Ser*_*ora 5 gmail ruby-on-rails contact-form ruby-on-rails-3

我已经建立了一个联系我们表格,我很好地收到了我的gApps收件箱中的电子邮件.但是,收到的电子邮件显示默认值:来自网站的值.我希望它们出现在电子邮件用户输入的电子邮件字段中.因此,当我点击"回复"时,它会将用户地址作为电子邮件必须发送的地址.

我试过这个,但它不起作用.知道为什么吗?

notifications_mailer.rb

class NotificationsMailer < ActionMailer::Base
  default to: "info@hikultura.com"

  def new_contact(message)
      @message = message
      mail(:subject => "[hiKultura.com] #{message.subject}",
        :from => message.email)
  end
end
Run Code Online (Sandbox Code Playgroud)

的ContactController

class ContactController < ApplicationController

  def new
    @message = Contactmessage.new
  end

  def create
    @message = Contactmessage.new(params[:contactmessage])

    if @message.valid?
      NotificationsMailer.new_contact(@message).deliver
      redirect_to(root_path, :notice => "Message was successfully sent.")
    else
      flash.now.alert = "Please fill all fields."
      render :new
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

UPDATE

我跟踪了我在SO中发现的类似案例:reply_to和GMail.但是,当我点击回复时,仍显示:到电子邮件地址.我错过了什么?

notifications_mailer.rb

class NotificationsMailer < ActionMailer::Base

   default :from => 'no-reply@mydomain.com'

  def new_contact(message)
      @message = message
      mail(:reply_to => "mierda@hotmail.com",
      :subject => "[mydomain.com] #{message.subject}", 
      :to => "admin@mydomain.com"
      )
  end
end
Run Code Online (Sandbox Code Playgroud)

小智 5

大多数SMTP提供商(Gmail等)不允许您从与您登录到SMTP服务器的帐户关联的地址以外的地址发送电子邮件,在您的情况下可能是配置地址的默认地址在你的应用程序中 如果您考虑一下,这对安全/ SPAM保护很有意义.您是否希望任何人能够发送显示您的电子邮件地址作为发件人地址的电子邮件?我肯定不会.另一种方法是使用:reply_to.当你在电子邮件程序中点击回复时,它应该使用它,如果它存在.

  mail(:subject => "[hiKultura.com] #{message.subject}",
    :reply_to => message.email)
Run Code Online (Sandbox Code Playgroud)