web-dev-qa-db-fra.com

Rails 5.2 Net :: SMTPAuthenticationError - 535 Échec de l'authentification: compte désactivé lors de l'envoi de courriels (Localhost et Heroku)

J'essaie de faire fonctionner un Rails 5.2 mailer, mais je rencontre un Net::SMTPAuthenticationError - 535 Authentication failed: account disabled erreur sur localhost et sur mon environnement Heroku production.

L'expéditeur ressemble à ceci:

class AdminNotificationsMailer < ApplicationMailer
  default from: "[email protected]"

  def new_rfp(rfp)
    @rfp = rfp
    mail(
      :to => "[email protected]",
      :subject => 'New RFP Alert!'
    )
  end

  def new_contact_us(contact)
    @contact = contact
    mail(
      to: "[email protected]",
      subject: 'New Contact Us Submission on LPI'
    )
  end

end

Avec le déclencheur dans mon rfp#create action (pour le premier expéditeur, le new_rfp une):

def create
    @rfp = Rfp.new(rfp_params)

    respond_to do |format|
      if @rfp.save!
        AdminNotificationsMailer.new_rfp(@rfp).deliver
        format.html { redirect_to root_path, notice: "Thanks for your request!  We'll get back to you ASAP.  Stay tuned!" }
        format.json { render :show, status: :created, location: @rfp }
      else
        format.html { render :new }
        format.json { render json: @rfp.errors, status: :unprocessable_entity }
      end
    end
  end

J'ai provisionné Sendgrid et revérifié mon nom d'utilisateur et mon mot de passe avec puts (c'est correct sur localhost et production).

J'ai ce qui suit dans mon environment.rb:

ActionMailer::Base.smtp_settings = {
  :user_name => ENV["SENDGRID_USERNAME"],
  :password => ENV["SENDGRID_PASSWORD"],
  :domain => 'linchpinindustries.com',
  :address => 'smtp.sendgrid.net',
  :port => 587,
  :authentication => :plain,
  :enable_starttls_auto => true
}

J'ai consulté des articles comme this et this , mais rien ne fonctionne.

Je suis officiellement perplexe. Quelqu'un peut-il voir pourquoi cette erreur se produit?

4
Liz

Pouvez-vous tester cette configuration? Il travaille sur mon projet.

ActionMailer::Base.smtp_settings = {
    :address => "smtp.sendgrid.net",
    :port => 465,
    :domain => "vibol.xyz",
    :ssl => true,
    :enable_starttls_auto => true,
    :authentication => :login,
    :user_name => ENV['SENDGRID_USERNAME'],
    :password => ENV['SENDGRID_PASSWORD']
  }
0
Coco