Je travaille actuellement sur une application avec un système mailer. Il fonctionnait bien, envoyant un email de bienvenue et envoyant des instructions pour réinitialiser le mot de passe, mais maintenant et seulement quand j'essaye d'envoyer des instructions de réinitialisation j'ai cette erreur.Rails concevoir avec des erreurs gmail
ArgumentError (SMTP From address may not be blank: nil):
J'utilise un domaine personnalisé comme si [email protected]
Et voici ma configuration
development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: '587',
domain: 'gmail.com',
authentication: :plain,
enable_starttls_auto: true,
user_name: Rails.application.secrets.mailer_username,
password: Rails.application.secrets.mailer_password
}
Toute idée?
Modifier
class UserMailer < ApplicationMailer
default from: '[email protected]'
def welcome_email(user)
@user = user
@url = 'http://localhost:3000/users/sign_in'
mail(to: @user.email, subject: 'Bienvenue')
end
def generate_new_password_email
user = User.find(params[:user_id])
user.send_reset_password_instructions
end
def reset_password; end
end
J'ai un paramètre 'default from' à la bonne adresse dans mon mailer. Aussi le mail est envoyé par Devise car c'est un mail pour réinitialiser un mot de passe. Cela a fonctionné pendant un certain temps sans avoir à remplacer quoi que ce soit donc le problème est peut-être ailleurs. – LRP
@LRP c'est dans devise.rb. Besoin de quelque chose comme ceci: config.mailer_sender = ENV ['SMTP_USERNAME'] –