2017-09-28 5 views
0

Je cours dans l'erreur affichée dans le lien chaque fois que j'essaye d'envoyer un email via les rails 'localhost' ou 'c9'. J'ai activé les "applications moins sécurisées" sur le compte google et j'ai essayé toutes les directives, mais l'erreur est toujours la même. Cherchant des gens d'aide. error snapshotAction Mailer retournant SMTPAuthentcationError

Les fichiers sources sont les suivantes: suggestion_mailer.rb

class SuggestionMailer < ApplicationMailer 

    # Subject can be set in your I18n file at config/locales/en.yml 
    # with the following lookup: 
    # 
    # en.suggestion_mailer.new_suggestion.subject 
    # 
    def new_suggestion() 
    #@suggestion = suggestion 


    mail(:from => "[email protected]", 
     :to => "yyyyyyyyyyyyyygmail.com", 
     :subject => 'Thanks for signing up for our amazing app' 
) 
end 
end 

suggestion_controller.rb

def create 
@suggestion = Suggestion.new(suggestion_params) 

respond_to do |format| 
    if @suggestion.save 
    SuggestionMailer.new_suggestion().deliver 
    format.html { redirect_to suggestions_url, notice: 'Suggestion was 
    successfully created.' } 
    format.json { render :show, status: :created, location: 
    @suggestion } 
    else 
    format.html { render :new } 
    format.json { render json: @suggestion.errors, status: 
    :unprocessable_entity } 
    end 
end 

fin

development.rb

config.action_mailer.delivery_method = :smtp 
    ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :domain    => "mail.google.com", 
    :port     => 587, 
    :user_name   => ENV['GMAIL_USERNAME'], 
    :password    => ENV['GMAIL_PASSWORD'], 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
    #:openssl_verify_mode => 'none' 
} 

    config.action_mailer.default_url_options = { host: 'localhost', 
     port: 3000 } 

Répondre

1

La configuration semble correcte. Pouvez-vous essayer de supprimer le domaine? Si vous souhaitez utiliser le domaine, utilisez 'gmail.com' au lieu de mail.google.com. Ce qui suit est ma config. Notez que j'ai utilisé config.action_mailer.smtp_settings = { et non ActionMailer::Base.smtp_settings = {. Je ne suis pas sûr que ce serait un problème.

config.action_mailer.raise_delivery_errors = true 

    config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } 

    config.action_mailer.perform_deliveries = true 

    config.action_mailer.default_options = {from: '[email protected]'} 

    # Mail settings 
    config.action_mailer.delivery_method = :smtp 

    # SMTP settings for gmail 
    config.action_mailer.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :port     => 587, 
    :user_name   => '[email protected]', 
    :password    => 'password', 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
    } 

    config.action_mailer.asset_host = 'http://localhost:3000' 

Modifier

Comme Justin dit, vous devez activer la nable des applications moins sûres dans google. La même chose peut être de here en bas. Quelque chose comme dans l'image ci-dessous

enter image description here

je fait face à un autre problème lors de l'envoi des mails de l'environnement de production. This m'a aidé à comprendre une autre chose dont je dois prendre soin pour le même. Apparemment, vous devez fournir un accès aux applications. Vous pouvez le faire à partir de here. Suffit de cliquer sur le continuer et attendre 10 minutes pour les changements à prendre place.

Vous êtes bon pour aller après cela pour envoyer des emails de production.

* Side Note: Je fait face à la question ci-dessus quand je l'application dans déployé Heroku *

+0

Hey, juste essayé votre suggestion, mais toujours sans succès. Je pense que le problème est les paramètres de google acc (corrigez-moi si je me trompe), je ne sais pas comment s'y prendre. Merci quand même. –

+0

Nous n'avons pas besoin de paramétrer Google pour autant que je sache. Êtes-vous sûr d'utiliser les informations d'identification correctes? Peut-être essayer de remplacer le nom d'utilisateur et mot de passe directement sans les variables d'environnement. Au cas où c'est le problème? – Aakanksha

+0

Vous devez activer des applications moins sécurisées dans google. J'ai déjà essayé d'utiliser les informations d'identification brutes autres que les variables d'environnement mais ne fonctionnait toujours pas. –