Ruby 2.5.7 Rails 5.2.4
gem gem 'dotenv-rails'
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é.
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.
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.
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.
Le service WorkMail d'AWS vous permet d'utiliser votre propre domaine'hogehoge.comcomme adresse e-mail de
example @ 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.
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.
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.
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.
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