2017-09-13 6 views
0

J'utilise Rails 5 et j'essaie d'envoyer des courriels de ma machine de dev en utilisant Gmail comme relais. J'ai ce fichier Mailer, app/mailers/user_notifier.rbComment envoyer un e-mail à partir de Rails à l'aide de Gmail?

class UserNotifier < ActionMailer::Base 
    default from: RAILS_FROM_EMAIL 

    # send notification email to user about the price 
    def send_notification(user_notification, crypto_price) 
    puts "user notification: #{user_notification.id}" 
    @user = user_notification.user 
    @crypto_price = crypto_price 
    threshhold = user_notification.buy ? 'above' : 'below' 
    puts "user: #{@user.email} currency: #{@user.currency}" 
    mail(:to => @user.email, 
    :subject => sprintf(Constants::USER_NOTIFICATION_SUBJECT, crypto_price.crypto_currency.name, threshhold, PriceHelper.format_price(user_notification.price, @user.currency)) ) 
    end 

Et puis-je envoyer l'e-mail d'un travailleur Sidekiq comme si

UserNotifier.send_notification(user_notification, price).deliver 

Bien que je ne vois pas d'erreur dans mes journaux , l'email n'est jamais livré (j'ai vérifié mon dossier spam pour le vérifier). Voici mon fichier config/environments/development.rb.

# ActionMailer Config 
    config.action_mailer.smtp_settings = { 
    address:    'smtp.gmail.com', 
    port:     587, 
    domain:    'mybox.devbox.com', 
    user_name:   'myusertest1', 
    password:    'myuser99999', 
    authentication:  'plain', 
    enable_starttls_auto: true 
    } 
    config.action_mailer.delivery_method = :smtp 
    # change to true to allow email to be sent during development 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.default :charset => "utf-8" 

Des idées sur ce qui pourrait mal tourner ou comment résoudre ce problème?

Répondre

1

Je crois en Rails 5, la syntaxe serait

UserNotifier.send_notification(user_notification, price).deliver_now

... et utiliser le courrier électronique comme nom d'utilisateur complet.

+0

A donné un tourbillon mais rien de neuf. Ne recevez toujours aucun email. – Dave

+0

Ajouté une modification. J'utilise gmail comme relais et j'ai utilisé l'email complet comme nom d'utilisateur. Ça vaut le coup. –

+0

Merci, je n'avais pas pensé à ça. Je ne reçois toujours pas les emails (même dans le spam) - y a-t-il un moyen de savoir ce qui se passe? Les fichiers journaux ne semblent pas révéler beaucoup. – Dave