Можете ли вы отправлять электронную почту только от имени пользователя, указанного в ActionMailer smtp_settings?
-
05-07-2019 - |
Вопрос
в моем конфигурационном файле 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
электронные письма не рассылаются.
Спасибо.
Решение
Я бы предположил, что это скорее проблема SMTP, чем ActionMailer.Некоторые SMTP-серверы не требуют имени пользователя / паролей для отправки исходящей почты, поэтому вы можете задать адрес отправки по своему усмотрению.
Тем не менее, поскольку у вас возникают проблемы с отправкой сообщений с адресом From, отличным от того, который вы используете для аутентификации на вашем SMTP-сервере, я бы предположил, что в окне SMTP существует ограничение, которое разрешает отправлять сообщения только в том случае, если адрес From соответствует UID аутентификации.