Posted almost 2 years ago. Visible to the public.

How to set up SMTP email delivery with a Gmail account

If you want to make your Rails application be capable of sending SMTP emails, check out the action mailer configuration section Archive in the Ruby on Rails guide.

TL;DR you will end up having an smtp_settings hash that looks something like this:

Copy
smtp_settings = { address: ..., domain: ..., port: ..., user_name: ..., password: ..., authentication: ..., tls: ..., enable_starttls_auto: ..., }

This hash can be set as the delivery_method in your environment or individually applied to an email generated in your mailer:

Copy
# production.rb: Rails.application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = smtp_settings end # test_mailer.rb def test_mail mail(to: 'mail@example.com', subject: 'Subject').delivery_method.settings.merge!(smtp_settings) end

Configuring SMTP with a Google account

These is an example configuration you can use to test if mail delivery works in your application:

Copy
smtp_settings { address: 'smtp.gmail.com', domain: 'smtp.gmail.com', port: 587, user_name: 'your_email@google.com', password: 'google_app_password', authentication: 'login', tls: false, enable_starttls_auto: true, }

If you are using Google with 2FA, you still can deliver mails

The solution for SMTP mail delivery from a google account with two factor authentication is described here Archive . You basically create a password that bypasses your security efforts. So make sure that you DONT GIVE IT AWAY, Google also suggests you to not write it down, etc.

Does your version of Ruby on Rails still receive security updates?
Rails LTS provides security patches for old versions of Ruby on Rails (3.2 and 2.3).

Owner of this card:

Avatar
Jakob Scholz
Last edit:
almost 2 years ago
by Jakob Scholz
Keywords:
google, mail
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Jakob Scholz to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more