Вы можете отправлять электронную почту только от имени пользователя, указанного в smtp_settings ActionMailer? - PullRequest
1 голос
/ 05 мая 2009

в моем конфигурационном файле 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 электронные письма не отправляются.

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2009

Я предполагаю, что это больше проблема SMTP, чем ActionMailer. Некоторые SMTP не требуют имя пользователя / пароль для отправки исходящей почты, поэтому вы можете установить адрес отправителя по своему усмотрению.

Тем не менее, поскольку у вас возникают проблемы с отправкой сообщений с адресом From, отличным от того, который вы используете для аутентификации на своем SMTP-сервере, я предполагаю, что существует ограничение на поле SMTP, которое позволяет сообщениям только отправлять, если адрес отправителя совпадает с идентификатором UID.

...