Dans "11.4 Envoi de courrier dans l'environnement de production" du didacticiel Rails, lorsque j'ai essayé d'envoyer du courrier pour l'enregistrement de l'utilisateur depuis heroku, "Nous sommes désolés, mais quelque chose s'est mal passé." S'affiche.
Lorsque je vérifie le journal avec heroku logs
, le journal des erreurs suivant s'affiche,
Étant donné que des informations telles que le contenu du courrier ont été sorties, il semble y avoir une erreur dans la partie de traitement de la transmission par SendGrid.
Net::SMTPFatalError (550 The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved. Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements)
Étant donné que les paramètres sont actuellement définis tels qu'ils sont dans le didacticiel, le paramètre «[email protected]» défini comme l'expéditeur n'est pas authentifié et le courrier n'arrive pas de SendGrid? Je l'ai googlé, mais je n'ai pas trouvé de chose similaire dans le didacticiel Rails.
J'ai essayé d'exécuter la commande suivante à partir de heroku run rails console
, mais la même erreur que ci-dessus s'est produite et le courrier n'est pas arrivé.
ActionMailer::Base.mail(from: "[email protected]", to: "<Adresse e-mail de réception>", subject: "subject", body: "body").deliver_now
J'ai regardé l'URL indiquée dans le journal et l'ai recherchée, mais il semble qu'il soit nécessaire d'authentifier l'expéditeur avec SendGrid. https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ https://sendgrid.com/docs/ui/sending-email/sender-verification/
Cependant, "[email protected]" n'est pas un domaine créé par moi-même, et je ne sais pas comment m'authentifier avec cette adresse, donc cette fois j'ai décidé de définir une adresse personnelle comme expéditeur et de l'envoyer. ..
Authentifiez et utilisez l'adresse e-mail utilisée par un individu comme adresse e-mail d'envoi et comme expéditeur avec SendGrid.
Connectez-vous à SendGrid et définissez «Vérification de l'expéditeur unique» en vous référant à l'article suivant. https://sendgrid.kke.co.jp/docs/Tutorials/B_Marketing_Mail/marketing_campaigns1.html
Après l'authentification, lorsque la commande suivante a été exécutée, un e-mail est arrivé de l'adresse e-mail d'envoi à l'adresse e-mail de réception.
ActionMailer::Base.mail(from: "<Envoi de l'adresse e-mail>", to: "<Adresse e-mail de réception>", subject: "subject", body: "body").deliver_now
Par conséquent, lorsque le traitement de la partie d'envoi de courrier a été modifié comme suit et que l'expéditeur de la partie de test a également été modifié, le problème a été résolu sur heroku et l'envoi de courrier a fonctionné sans aucun problème.
/sample_app/app/mailers/application_mailer.rb
class ApplicationMailer < ActionMailer::Base
default from: "<Envoi de l'adresse e-mail>"
layout 'mailer'
end
Puisqu'il semble que le service Web actuel utilise l'adresse e-mail ou le domaine qu'il possède comme expéditeur, l'envoi par "[email protected]" qu'il ne possède pas a été reporté.
Cependant, je n'ai pas encore compris si je dois envoyer ou non à une adresse qui ne m'appartient pas, alors je l'ajouterai lorsque je trouverai quelque chose.
Recommended Posts