Pouvez-vous uniquement envoyer des courriers électroniques à partir du nom d'utilisateur spécifié dans les smtp_settings d'ActionMailer?
-
05-07-2019 - |
Question
dans mon fichier de configuration ActionMailer, j'ai ceci:
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"
}
Avec cette configuration, puis-je uniquement envoyer un courrier électronique à partir de l'adresse électronique no-reply@foo.com
? Si tel est le cas, existe-t-il un moyen d'envoyer des courriels provenant d'autres adresses? J'ai ceci dans ma 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
En développement, tout se passe bien, mais en production, les courriels completed_order
ne sont pas envoyés.
Merci.
La solution
J'imagine qu'il s'agit davantage d'un problème SMTP que d'ActionMailer. Certains SMTP ne requièrent pas de nom d'utilisateur / mot de passe pour envoyer du courrier sortant. Vous pouvez donc définir l'adresse de départ comme vous le souhaitez.
Cela dit, étant donné que vous rencontrez des problèmes lors de l'envoi de messages dont l'adresse de l'expéditeur est différente de celle utilisée pour vous authentifier auprès de votre serveur SMTP, je suppose qu'il existe une restriction sur la boîte de dialogue SMTP qui autorise uniquement les messages à être envoyé si l'adresse De correspond à l'UID d'authentification.