2017-04-03 1 views
0

J'ai une méthode mailer d'action comme quelque chose comme ceci:ActionMailer agissant sur différents serveurs de production

def mail 
@receiver = User.where(status: 2).pluck(:email) 
mail(bcc:@receiver, to: "[email protected]") 
end 

application.yml ressemble à ceci:

SMTP_ADDRESS: 'smtp.gmail.com' 
SMTP_PORT: 587 
SMTP_HOST: 'localhost:3000' 
SMTP_DOMAIN: 'localhost:3000' 
SMTP_USERNAME: '[email protected]' 
SMTP_PASSWORD: 'xxxxx' 
SUPER_ADMIN_EMAIL: '[email protected]' 

developmet.rb ressemble ce:

config.action_mailer.asset_host = ENV["SMTP_HOST"] 
    # config.action_mailer.delivery_method = :letter_opener 
    config.action_mailer.raise_delivery_errors = false 

    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    #Enter the smtp provider here ex: smtp.mandrillapp.com 
    address: ENV["SMTP_ADDRESS"], 
    port: ENV['SMTP_PORT'].to_i, 
    #Enter the smtp domain here ex: vendaxo.com 
    domain: ENV["SMTP_DOMAIN"], 
    #Enter the user name for smtp provider here 
    user_name: ENV["SMTP_USERNAME"], 
    #Enter the password for smtp provider here 
    password: ENV["SMTP_PASSWORD"], 
    authentication: 'plain', 
    enable_starttls_auto: true 

Où les récepteurs sont conservés dans BCC mais "[email protected]" sera en mesure de voir les récepteurs BCCd. Cela fonctionne bien quand j'envoie les mails de mon hôte local. Lorsque les destinataires reçoivent des courriels, ils sont tous dans BCC et un nom d'utilisateur ([email protected]) est en mesure de voir tous les destinataires.

Mais quand je fais la même chose sur le serveur de production avec la même configuration application.yml changer l'hôte et le port du [email protected] ne reçoit pas les e-mails de récepteurs BCCD.

+0

Peut-être utile https://www.sitepoint.com/deliver-the-mail-with-amazon-ses-and-rails/ –

Répondre

0

Je pense que si vous utilisez votre serveur de production sur AWS EC2 (peut-être d'autres fournisseurs aussi), chaque fois que vous faites des changements à votre application.yml ou tout autre fichier partagé, vous devez redémarrer le serveur d'applications afin d'appliquer les configurations modifiées. Dans mon cas, j'ai dû redémarrer le PUMA, et l'email par défaut a commencé à recevoir des identifiants de courrier électronique BCCd.