Rails 3 Action Mailer:可以通过用户的电子邮件向我们发送电子邮件(“联系我们”表单)?

时间:2013-01-11 16:58:48

标签: ruby-on-rails

您好我正在尝试为联系我们表单制作邮件。电子邮件是:from user@email.com,并且是:to my@email.com。这可能是通过SMTP开发的吗? ActionMailer是否实际从用户电子邮件帐户发送电子邮件,还是只是一封假电子邮件?我想使用user@email.com作为发件人的原因是因为我希望我能够直接回复该电子邮件。

我正在尝试使用localhost而我收到错误:Errno::ECONNREFUSED (Connection refused - connect(2)):我认为这是因为我没有正确设置设置。是否需要在实际的Gmail帐户上拥有用户名/密码才能发送此电子邮件?

这是我的设置(我没有任何用户名/密码,这可能是我的错误的来源吗?):

ActionMailer::Base.smtp_settings = {
  :address              => '127.0.0.1',
  :port                 => 25
}

控制器:

def email
  ContactMailer.contact_form(params).deliver
end

邮件收发器:

class ContactMailer < ActionMailer::Base
  default :to => "my@email.com"

  def contact_form(sender)
    @sender = sender
    mail(:from => sender[:email], :subject => "Question from #{sender[:company] ?     sender[:company] : "" } 
                                              - Contact Us")
  end
end

视图/ contact_mailer / contact_mailer.text.erb:

We have been contacted by <%= @sender[:email] %>

固定

我将此行添加到初始化程序中:

ActionMailer::Base.delivery_method = :sendmail

2 个答案:

答案 0 :(得分:2)

使用Letter Opener进行开发。

答案 1 :(得分:0)

@Edmund,我很好奇,当你说“FIXED”这意味着你通过在初始化程序中添加该行来解决这个问题?如果是这样,请仔细澄清哪个文件?

我的理解per this paid tutorial是您不需要设置任何SMTP设置,因为如果您从自己的帐户发送电子邮件,则只需要这些设置(即,SMTP允许ActionMailer进入您的帐户并代表您发送电子邮件。

我会说这是一个奇怪的假设...... ActionMailer能够以某种方式从其他人的帐户发送电子邮件,而不知道他们的SMTP设置。

无论如何,这是一个奇怪的部分答案,因为这是教程教给我的东西,但我实际上无法让它工作,所以我也很想知道什么对你有用。