Puoi inviare e-mail solo dal nome utente specificato in smtp_settings di ActionMailer?
-
05-07-2019 - |
Domanda
nel mio file di configurazione di ActionMailer ho questo:
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"
}
Con questa configurazione posso inviare e-mail solo dall'indirizzo e-mail no-reply@foo.com
? In tal caso, esiste un modo per inviare e-mail da altri indirizzi? Ho questo nella mia classe 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
Nello sviluppo tutto funziona bene, ma in produzione le e-mail complete_order
non vengono inviate.
Grazie.
Soluzione
Immagino che questo sia più un problema SMTP che ActionMailer. Alcuni SMTP non richiedono nome utente / password per inviare la posta in uscita e quindi puoi impostare l'indirizzo del mittente come preferisci.
Detto questo, dal momento che stai riscontrando problemi nell'invio di messaggi che hanno un indirizzo Da diverso da quello che stai utilizzando per autenticarti sul tuo server SMTP, immagino che ci sia una restrizione sulla scatola SMTP che consente solo ai messaggi di essere inviato se l'indirizzo del mittente corrisponde all'UID di autenticazione.