it-swarm.com.de

Rails 4, wie man die SMTP-Einstellungen korrekt konfiguriert (gmail)

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!

45
ResrieC

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
}
52
TarunJadhwani

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.

35
Kim Miller

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

  1. Gehen Sie zur Seite 2-Step Verification . Möglicherweise müssen Sie sich bei Ihrem Google-Konto anmelden.
  2. Wählen Sie rechts im Feld "Bestätigung in zwei Schritten" die Option Setup starten aus.
  3. Befolgen Sie die Schritt-für-Schritt-Anweisungen.

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

  1. Besuchen Sie Ihre App-Passwörter Seite. Möglicherweise werden Sie aufgefordert, sich in Ihrem Google-Konto anzumelden.
  2. Klicken Sie unten auf App auswählen und wählen Sie die App aus, die Sie verwenden.
  3. Klicken Sie auf Gerät auswählen und wählen Sie das von Ihnen verwendete Gerät aus.
  4. Wählen Sie Generate.
  5. Folgen Sie den Anweisungen, um das App-Passwort (den 16-stelligen Code in der gelben Leiste) auf Ihrem Gerät einzugeben.
  6. Wählen Sie Fertig
5
Gabriel Sigouin

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",
  }
1
truongnm

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.

0
DOK