[Ruby on Rails 5] Verwenden Sie WorkMail, um eine E-Mail-Adresse für Ihre eigene Domain festzulegen. [Arbeitspost]

Umgebung

Ruby 2.5.7 Rails 5.2.4

gem gem 'dotenv-rails'

Annahme

Qiita - Einfache Implementierung der Abfragefunktion Es wird ein Fluss sein, der unter Bezugnahme auf diesen Artikel umgeschrieben wird. Wir hoffen, dass Sie den Vorgang mit Ihrem Google Mail-Konto im Voraus implementieren und überprüfen und dann die hier vorgestellte Methode üben.

Die ursprüngliche Domain wurde erworben. AWS ist registriert.

Hintergrund

Da ich meine eigene Domain erworben habe, wollte ich die von der Anfrage gesendete Nachricht per E-Mail erhalten, die ich mit meiner eigenen Domain erhalten habe, und habe mir diese Implementierung ausgedacht. Bei der Suche im Internet habe ich jedoch nur die Implementierungsmethode am Beispiel von Google Mail gefunden. Daher möchte ich sie dieses Mal anwenden.

Verfahren

  1. Holen Sie sich Ihre eigene Domain
  2. Erhalten Sie eine E-Mail-Adresse mit AWS WorkMail unter Verwendung der erworbenen eindeutigen Domain
  3. Reflektieren Sie die SMTP-Einstellungen von WorkMail (IMAP / POP des Posteingangsservers wird diesmal nicht berührt).

Ziel ist es, dass der Inhalt der Anfrage, die über das Kontaktformular auf der Website gesendet wird, an die E-Mail-Adresse gesendet wird, die Sie mit der ursprünglichen Domain erhalten haben.

1. Holen Sie sich Ihre eigene Domain

Erhalten mit Google Domains. Ich werde die Methode zum Reflektieren in Ihrer eigenen Site-URL weglassen, da sie sich vom Hauptthema unterscheidet.

2. Erhalten Sie eine E-Mail-Adresse mit AWS WorkMail unter Verwendung der erworbenen eindeutigen Domain

Mit dem WorkMail-Service von AWS können Sie Ihre eigene Domain "hogehoge.com" als E-Mail-Adresse von "example @ hogehoge.com" verwenden. Ich habe auf die folgende Site für WorkMail-Einstellungen verwiesen. MISO - Ich habe versucht, mit Amazon WorkMail einen Mail-Dienst meiner eigenen Domain zu erstellen

Es ist in Ordnung, wenn Sie den Anweisungen folgen und das Senden und Empfangen normal bestätigen können.

3. Reflektieren Sie die SMTP-Einstellungen von WorkMail (SMTP-Einstellungen).

Dieses Mal sendet nur die Rails-Anwendung an WorkMail, sodass IMAP und POP, die die empfangenden Server sind, nicht festgelegt sind.

Überprüfen Sie zunächst die WorkMail-Einstellungsinformationen von hier. Die verlinkte Seite enthält zwei Einstellungsinformationen, IMAP und SMTP. Dieses Mal wird jedoch auf die SMTPS-Einstellungsinformationen unten verwiesen. SMTP

Als nächstes kommt der Code. Wir werden die Referenzsite des Google Mail-Kontos, das in der Prämisse für WorkMail eingeführt wurde, neu schreiben und einführen.

Ändern Sie zunächst das Ziel.

app/mailers/contact_mailer.rb



class ContactMailer < ApplicationMailer

  ...

  def contact_mail(contact)
    @contact = contact
    mail to: "E-Mail-Adresse mit Ihrer eigenen Domain erhalten", subject: "E-Mail-Titel"
  end

  ...

end

Der Teil von "Mail an:" wird von der Google Mail-Adresse in die E-Mail-Adresse geändert, die von der ursprünglichen Domain erhalten wurde. Die Referenzseite in Google Mail hat es zu einer Umgebungsvariablen gemacht, aber ich habe entschieden, dass es in Ordnung ist, die Adresse zu veröffentlichen, also habe ich sie solide geschrieben. Wenn Sie sich nicht sicher sind, ändern Sie bitte die .env-Datei weiter.

Als nächstes folgen die Mail-Einstellungen.

config/initializers/mail_config.rb



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

Das WorkMail-Protokoll sagt SMTPS, aber Sie können delivery_method als: smtp belassen. Die Adresse hängt von der Region ab, in der Sie Ihre WorkMail erstellt haben. Ich habe mich für die Region West-USA (Oregon) entschieden, also sieht es so aus. Die Regionen, in denen WorkMail erstellt werden kann, sind begrenzt, und der asiatisch-pazifische Raum (Tokio) ist nicht enthalten.

Korrespondenztabelle `Eastern United States (Northern Virginia )` → smtp.mail.us-east-1.awsapps.com `Western United States (Oregon )` → smtp.mail.us-west-2.awsapps.com `Europa (Irland)` → smtp.mail.eu-west-1.awsapps.com

Geben Sie für die Domain den erworbenen ursprünglichen Domainnamen (example.com) so ein, wie er ist. Geben Sie 465 als Portnummer an. Da Benutzername und Kennwort Informationen sind, die wir nicht als Quellcode veröffentlichen möchten, verwenden wir die ENV-Datei. (Siehe unten.) Da nichts zu authentifizieren ist und die Authentifizierung auch dann funktioniert, wenn Sie sie nicht angeben, löschen Sie sie. Im Element "Sichere Verbindung" von WorkMail heißt es, dass SSL erforderlich ist. Fügen Sie also "ssl: true" hinzu. Außerdem heißt es "(STARTTLS wird nicht unterstützt)", sodass Sie es nicht für die automatische Erkennung aktivieren müssen. Entfernen Sie daher "enable_starttls_auto: true".

Schauen wir uns als nächstes die ENV-Datei der zuvor erwähnten Umgebungsvariablen an.

.env



  ...

  WORKMAIL_USERNAME =E-Mail-Adresse mit Ihrer eigenen Domain erhalten
  WORKMAIL_PASSWORD =Passwort zum Anmelden bei AWS

  ...

Wenn Sie diese als Umgebungsvariablen festlegen, werden Anmeldeinformationen nicht auf der Site oder auf GitHub veröffentlicht. Da es sich um eine Datei handelt, die nicht zu GitHub reicht, müssen Sie sie auf die gleiche Weise in die ENV-Datei der Produktionsumgebung schreiben. Wenn Sie vergessen, es in der Produktionsumgebung in .env zu schreiben, wird die Umgebungsvariable in dieser E-Mail-Einstellung nicht erkannt und funktioniert nicht.

Zusammenfassung

Der Quellcode, den ich tatsächlich verwende, wird auf meinem GitHub veröffentlicht. Darüber hinaus gibt es möglicherweise Teile, die sich von der Referenzwebsite zum Zeitpunkt des Betriebs des Google Mail-Kontos unterscheiden. Überprüfen Sie daher auch m (_ _) m

Wenn Sie Fragen haben, unterschiedliche Interpretationen haben oder wenn Sie der Meinung sind, dass etwas mit der Beschreibungsmethode nicht stimmt, würden wir uns freuen, wenn Sie in den Kommentaren darauf hinweisen könnten.

Mein Twitter veröffentlicht jeden Tag solche Techniken, Eindrücke und Überlegungen. Wenn Sie also interessiert sind, schauen Sie bitte (´ ー `)

Vielen Dank für das Lesen bis zum Ende.

Referenzseite

Für eine praktischere Verwendung habe ich die Datei, die ich tatsächlich verwende, auf meinem GitHub veröffentlicht. Bitte beachten Sie dies auch! GitHub - MasaoSasaki/matchi

Andere Qiita - Einfache Implementierung der Abfragefunktion MISO - Ich habe versucht, mit Amazon WorkMail einen Mail-Dienst meiner eigenen Domain zu erstellen AWS - Setting up IMAP for Amazon WorkMail

Recommended Posts