[Ruby on Rails 5] Utilisez WorkMail pour définir une adresse e-mail pour votre propre domaine. [Courrier professionnel]

environnement

Ruby 2.5.7 Rails 5.2.4

gem gem 'dotenv-rails'

supposition

Qiita - Implémentation simple de la fonction d'enquête Ce sera un flux à réécrire en référence à cet article. Nous espérons que vous implémenterez et vérifierez l'opération avec votre compte Gmail à l'avance, puis que vous vous exercerez à la méthode présentée ici.

Le domaine d'origine a été acquis. AWS est enregistré.

Contexte

Depuis que j'ai acquis mon propre domaine, je voulais recevoir le message envoyé de la demande par le mail acquis avec mon propre domaine, j'ai donc imaginé cette implémentation. Cependant, lorsque j'ai cherché sur le net, je n'ai trouvé que la méthode de mise en œuvre en utilisant Gmail comme exemple, je voudrais donc l'appliquer cette fois.

procédure

  1. Obtenez votre propre domaine
  2. Obtenez une adresse e-mail avec AWS WorkMail à l'aide du domaine unique acquis
  3. Refléter les paramètres SMTP de WorkMail (IMAP / POP du serveur de messagerie entrant ne sera pas touché cette fois)

L'objectif est que le contenu de la demande envoyée à partir du formulaire de contact sur le site soit envoyé à l'adresse e-mail obtenue dans le domaine d'origine.

1. Obtenez votre propre domaine

Obtenu à l'aide de Google Domains. J'omettrai la méthode pour le refléter dans votre propre URL de site car il est différent du sujet principal.

2. Obtenez une adresse e-mail avec AWS WorkMail à l'aide du domaine unique acquis

Le service WorkMail d'AWS vous permet d'utiliser votre propre domaine'hogehoge.comcomme adresse e-mail deexample @ hogehoge.com`. J'ai fait référence au site suivant pour les paramètres de WorkMail. MISO - J'ai essayé de créer un service de messagerie de mon propre domaine en utilisant Amazon WorkMail

Si vous suivez la procédure et que vous pouvez confirmer la transmission et la réception normalement, c'est OK.

3. Refléter les paramètres SMTP de WorkMail (paramètres SMTP)

Cette fois, seule l'application Rails envoie à WorkMail, donc IMAP et POP, qui sont les serveurs de réception, ne sont pas définis.

Tout d'abord, vérifiez les informations de configuration WorkMail de ici. La page liée contient deux informations de configuration, IMAP et SMTP, mais cette fois, nous nous référerons aux informations de configuration SMTPS en bas. SMTP

Vient ensuite le code. Nous réécrirons le site de référence du compte Gmail introduit dans les locaux de WorkMail et l'introduirons.

Tout d'abord, changez la destination.

app/mailers/contact_mailer.rb



class ContactMailer < ApplicationMailer

  ...

  def contact_mail(contact)
    @contact = contact
    mail to: "Adresse e-mail obtenue avec votre propre domaine", subject: "Titre de l'e-mail"
  end

  ...

end

La partie de «mail to:» passe de l'adresse Gmail à l'adresse e-mail obtenue par le domaine d'origine. Le site de référence sur Gmail en a fait une variable d'environnement, mais j'ai décidé qu'il serait acceptable de publier l'adresse, alors je l'ai écrite solidement. En cas de doute, veuillez continuer à modifier le fichier .env.

Viennent ensuite les paramètres de messagerie.

config/initializers/mail_config.rb



ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  address: 'smtp.mail.us-west-2.awsapps.com',
  domain: 'Nom de domaine unique',
  port: 465,
  user_name: ENV['WORKMAIL_USERNAME'],
  password: ENV['WORKMAIL_PASSWORD'],
  ssl: true
}

Le protocole WorkMail dit SMTPS, mais vous pouvez laisser delivery_method comme: smtp. L'adresse dépend de la région dans laquelle vous avez créé votre WorkMail. J'ai choisi la région de l'ouest des États-Unis (Oregon), donc cela ressemble à ce qui précède. Les régions dans lesquelles WorkMail peut être créé sont limitées et l'Asie-Pacifique (Tokyo) n'y est pas incluse. <détails> <résumé> Table de correspondance </ résumé> Est des États-Unis (Virginie du Nord) → smtp.mail.us-east-1.awsapps.com Ouest des États-Unis (Oregon) → smtp.mail.us-west-2.awsapps.com Europe (Irlande) → smtp.mail.eu-west-1.awsapps.com

Pour le domaine, entrez le nom de domaine d'origine acquis (exemple.com) tel quel. Spécifiez 465 comme numéro de port. Puisque le nom d'utilisateur et le mot de passe sont des informations que nous ne voulons pas publier en tant que code source, nous utiliserons le fichier .env. (Voir ci-dessous.) Puisqu'il n'y a rien à authentifier et que l'authentification fonctionne même si vous ne la spécifiez pas, supprimez-la. Dans l'élément Connexion sécurisée de WorkMail, il est indiqué que SSL est requis, alors ajoutez ssl: true. De plus, il dit (STARTTLS n'est pas pris en charge), donc vous n'avez pas besoin de l'activer pour la découverte automatique, alors supprimez enable_starttls_auto: true.

Ensuite, regardons le fichier .env de la variable d'environnement mentionnée précédemment.

.env



  ...

  WORKMAIL_USERNAME =Adresse e-mail obtenue avec votre propre domaine
  WORKMAIL_PASSWORD =Mot de passe pour se connecter à AWS

  ...

En les définissant comme variables d'environnement, les informations de connexion ne seront pas publiées sur le site ou sur GitHub. De plus, comme il s'agit d'un fichier qui ne monte pas sur GitHub, vous devez l'écrire de la même manière sur le fichier .env de l'environnement de production. Si vous oubliez de l'écrire en .env dans l'environnement de production, la variable d'environnement de ce paramètre de messagerie ne sera pas reconnue et ne fonctionnera pas.

Sommaire

Le code source que j'utilise actuellement est publié sur mon GitHub. De plus, il peut y avoir des parties différentes du site de référence au moment de l'opération du compte Gmail, veuillez donc vérifier cela également m (_ _) m

Si vous avez des questions, des différences d'interprétation ou un inconfort dans la méthode de description, nous vous serions reconnaissants de bien vouloir les signaler dans les commentaires.

Mon Twitter publie également de telles techniques, impressions et considérations tous les jours, donc si vous êtes intéressé, veuillez jeter un œil (´ ー `)

Merci d'avoir lu jusqu'à la fin.

Site de référence

Pour une utilisation plus pratique, j'ai publié le fichier que j'utilise actuellement sur mon GitHub, veuillez donc vous y référer également! GitHub - MasaoSasaki/matchi

Autre Qiita - Implémentation simple de la fonction d'enquête MISO - J'ai essayé de créer un service de messagerie de mon propre domaine en utilisant Amazon WorkMail AWS - Setting up IMAP for Amazon WorkMail

Recommended Posts

[Ruby on Rails 5] Utilisez WorkMail pour définir une adresse e-mail pour votre propre domaine. [Courrier professionnel]
Comment utiliser Ruby on Rails
Utilisez Heroku × Rails pour rediriger vers votre propre domaine avec rack-rewrite
[Ruby on Rails] Comment utiliser redirect_to
Rails / Ruby: Comment obtenir du texte HTML pour Mail
Explication de Ruby on rails pour les débutants ④ ~ À propos des règles de dénomination et comment utiliser form_Tag ~
[Ruby on Rails] Comment éviter de créer des routes inutiles pour concevoir
Utilisez LocationAwareLogger pour votre propre enregistreur
Utilisez l'application Web Timecop in Rails pour déplacer le temps dans le navigateur
[Erreur] Changer la construction de l'environnement pour utiliser oss (open source) de Ruby on Rails
[Pour les débutants Rails] Résumé de l'utilisation de RSpec (obtenir un aperçu)
Utilisez Processing pour implémenter un environnement d'exécution pour votre propre langage de codage en direct avec un écran de prévisualisation de la console de l'éditeur
[Ruby on Rails] Création d'un formulaire de demande
Déployer sur Heroku [Ruby on Rails] Débutant
[Ruby] Comment utiliser slice pour les débutants
Préparation à l'introduction de jQuery dans Ruby on Rails
Explication de Ruby sur rails pour les débutants ①
Bouton [Ruby on Rails] pour revenir en haut
[Ruby on Rails] Modifiez la date de mise à jour et la date de création selon votre notation préférée