2017-09-13 3 views
0

Ich verwende Rails 5 und versuche, einige E-Mails von meinem Dev-Computer mit Google Mail als Relay zu versenden. Ich habe diese Mailer-Datei app/Mailer/user_notifier.rbWie sende ich eine E-Mail mit Google Mail von Rails?

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 

Und dann habe ich die E-Mail von einem Sidekiq Arbeiter senden, wie so

UserNotifier.send_notification(user_notification, price).deliver 

Obwohl ich sehe keine Fehler in meinen Logs , die E-Mail wird nie zugestellt (Ich habe meinen Spam-Ordner überprüft, um dies zu überprüfen). Unten ist meine Datei 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" 

Irgendwelche Ideen, was könnte schief gehen oder wie kann ich das weiter beheben?

Antwort

1

Ich glaube an Rails 5, die richtige Syntax

UserNotifier.send_notification(user_notification, price).deliver_now

... und verwenden vollständige E-Mail als Benutzername sein würde.

+0

Gab das einen Wirbel, aber nichts zu tun. Empfangen Sie immer noch keine E-Mails. – Dave

+0

Eine Bearbeitung hinzugefügt. Ich nutze Google Mail als Relay und nutze die volle E-Mail als Benutzername. Einen Versuch wert. –

+0

Danke, daran habe ich nicht gedacht. Ich bekomme immer noch keine E-Mails (auch nicht in Spam) - kann ich eine Spur von dem bekommen, was vor sich geht? Die Protokolldateien scheinen nicht viel zu verraten. – Dave

Verwandte Themen