1

在我的 ActionMailer 配置文件中,我有这个:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  :address => "mail.foo.com",
  :port => 25,
  :domain => "foo.com",
  :authentication => :email,
  :user_name => "no-reply@foo.com",
  :password => "foo1234567"
}

使用此配置,我只能从no-reply@foo.com电子邮件地址发送电子邮件吗?如果是这样,有没有办法从其他地址发送电子邮件?我的 ActionMailer 类中有这个:

class Notifications < ActionMailer::Base

  def answered_question(faq)
    subject       'Your question has been answered'
    recipients    faq.email
    from          'Foo <no-reply@foo.com>'
    sent_on       Time.now
    content_type  "text/html"
    body          :faq => faq
  end


  def completed_order(order)
    subject        'Your order has been completed'
    recipients     order.email                                       
    from           'Foo <registrations@foo.com>'
    sent_on        Time.now
    content_type   "text/html"
    body           :order => order
  end
end

在开发中一切正常,但在生产completed_order中没有发送电子邮件。

谢谢。

4

1 回答 1

0

我猜这更像是一个 SMTP 问题,它是 ActionMailer。一些 SMTP 不需要用户名/密码来发送外发邮件,因此您可以根据需要设置发件人地址。

也就是说,由于您在发送邮件时遇到问题,这些邮件的发件人地址与您用来向 SMTP 服务器进行身份验证的地址不同,我猜想 SMTP 框有一个限制,仅允许在以下情况下发送邮件发件人地址与身份验证 UID 匹配。

于 2009-05-06T20:20:59.887 回答