Ich versuche, ein Kontaktformular in Rails 4 zu erstellen. Ich habe hier etwas herumgegraben und konnte das meiste Zeug zum Laufen bringen. (folgte @ sethfris Arbeit hier Kontaktformular Mailer in Rails 4 )
Im Moment kann ich mein Formular ausfüllen und auf "Senden" klicken. In meinem Rails-Server heißt es, dass die E-Mail an meine E-Mail-Adresse gesendet wurde. Ich erhalte jedoch nichts in meinem Google Mail-Postfach. Ich glaube, meine SMTP-Einstellungen sind nicht richtig. Meine SMTP-Einstellungen sind:
... config /virones/development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
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 => "mydomain.net",
:user_name => "[email protected]",
:password => "myGmailPassword",
:authentication => "plain",
:enable_starttls_auto => true
}
Ich habe auch in .../config/initializers/smtp_settings.rb hinzugefügt.
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.net",
:user_name => "[email protected]",
:password => "gmailPassword",
:authentication => "plain",
:enable_starttls_auto => true
}
Was vermisse ich falsch? Ich habe mit ein paar Dingen herumgespielt (default_url in Port 1025 geändert, port => "587" in: port => 587 geändert), jedoch ohne Erfolg.
Danke für die Hilfe!
Sie müssen die Domain richtig einstellen. Derzeit im Code gepostet sein "mydomain.net". Ändern Sie es in gmail.com , wenn Sie es per Google Mail senden möchten.
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: '[email protected]',
password: 'yourpassword',
authentication: :plain,
enable_starttls_auto: true
}
Wenn Sie beim Senden von E-Mails (häufig für Google Apps-Konten) auf Fehler wie Net :: SMTPAuthenticationError stoßen, besuchen Sie Ihre gmail-Einstellungen und aktivieren Sie weniger sichere Apps, damit die Anwendung funktioniert.
Nach ein paar Stunden, um zu suchen, wie das für mich funktioniert, finde ich einen Weg, damit es funktioniert. Für mich selbst musste ich die Bestätigung in zwei Schritten durchführen und das Kennwort der Google Mail-Anwendung verwenden
Wenn Sie die Bestätigung in zwei Schritten (auch als Zwei-Faktor-Authentifizierung bezeichnet) aktivieren, fügen Sie Ihrem Konto eine zusätzliche Sicherheitsebene hinzu. Sie melden sich mit etwas an, das Sie kennen (Ihr Passwort) und etwas, das Sie haben (einen Code, der an Ihr Telefon gesendet wird).
2-Schritt-Überprüfung einrichten
Ein App-Passwort ist ein 16-stelliger Passcode, der einer App oder einem Gerät die Berechtigung zum Zugriff auf Ihr Google-Konto gibt. Wenn Sie die 2-Schritt-Überprüfung verwenden und beim Zugriff auf Ihr Google-Konto die Fehlermeldung "Passwort falsch" angezeigt wird, kann das Problem durch ein App-Passwort behoben werden. In den meisten Fällen müssen Sie ein App-Kennwort nur einmal pro App oder Gerät eingeben. Machen Sie sich also keine Gedanken darüber, ob Sie es sich merken
So generieren Sie ein App-Passwort
2019, Rails 5 aktualisierte Antwort:
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { Host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
authentication: "plain",
enable_starttls_auto: true,
user_name: "[email protected]",
password: "tutorialrails",
domain: "smtp.gmail.com",
openssl_verify_mode: "none",
}
Google empfiehlt die Verwendung von OAuth 2.0 für den Anmeldeprozess. Diese Konfiguration ist für Google "nicht so sicher", aber sie tolerieren es. Sie müssen in Ihren Google-Kontoeinstellungen "weniger sichere Verbindungen" zulassen oder den OAuth-Weg verwenden https://developers.google.com/identity/protocols/OAuth2
Ihre Bibliothek für Ruby ist immer noch Alpha ..__ Es scheint, dass es einige Juwelen gibt, die ActionMailer für OAuth erweitern, aber ich habe sie nie benutzt.