J'essaie de créer un formulaire de contact dans Rails 4. J'ai creusé ici et j'ai réussi à faire fonctionner la plupart des choses. (suivi le travail de @ sethfri ici Formulaire de contact Mailer in Rails 4 )
À l'heure actuelle, je suis en mesure de remplir ma boîte de formulaire et cliquez sur Envoyer. Dans mon serveur Rails, il est indiqué que le courrier était sortant de mon adresse e-mail, mais je ne reçois rien dans ma boîte de messagerie Gmail. Je pense donc que mes paramètres smtp ne sont pas corrects. Mes paramètres smtp sont:
... config/environnements/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
}
J'ai aussi ajouté dans .../config/initializers/smtp_settings.rb
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
}
Qu'est-ce qui me manque/je fais mal? J'ai joué avec plusieurs choses (changé default_url en port 1025, changé: port => "587" en: port => 587) sans succès.
Merci pour l'aide!
Vous devez définir le domaine correctement. Actuellement dans le code posté son "mydomain.net". Changez-le en gmail.com si vous voulez l'envoyer via gmail.
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
}
Si vous rencontrez des erreurs telles que Net :: SMTPAuthenticationError lors de l'utilisation de gmail pour l'envoi d'e-mails (communs aux comptes Google Apps), accédez à vos paramètres gmail et activez des applications moins sécurisées pour que l'application fonctionne.
Après quelques heures à chercher comment faire fonctionner cela pour moi, je trouve un moyen de le faire fonctionner. Pour ma part, je devais effectuer une vérification en deux étapes et utiliser le mot de passe de l'application Gmail.
Lorsque vous activez la vérification en deux étapes (également appelée authentification à deux facteurs), vous ajoutez une couche de sécurité supplémentaire à votre compte. Vous vous connectez avec quelque chose que vous connaissez (votre mot de passe) et quelque chose que vous possédez (un code envoyé à votre téléphone).
Configurer la vérification en deux étapes
Un mot de passe d'application est un code d'accès à 16 chiffres qui donne à une application ou à un appareil la permission d'accéder à votre compte Google. Si vous utilisez la vérification en deux étapes et que vous voyez une erreur «mot de passe incorrect» lorsque vous essayez d'accéder à votre compte Google, un mot de passe de l'application peut résoudre le problème. La plupart du temps, il vous suffit de saisir un mot de passe d'application une fois par application ou appareil, alors ne vous inquiétez pas de le mémoriser.
Comment générer un mot de passe d'application
Google recommande d'utiliser OAuth 2.0 pour le processus de connexion. Cette configuration n'est "pas si sûre" pour Google, mais ils la tolèrent. Vous devez autoriser les "connexions moins sûres" dans les paramètres de votre compte Google ou utiliser la méthode OAuth . https://developers.google.com/identity/protocols/OAuth2
Leur bibliothèque pour Ruby est toujours alpha . Il semble y avoir quelques joyaux prolongeant ActionMailer pour OAuth, mais je ne les ai jamais utilisés.