В интернете мне попадалось несколько статей, в которых объясняется, как посылать почту с учетной записи Google из приложения под Ruby on Rails. Однако, некоторые из них не работают, а некоторые объяснены не до конца. Поэтому я хочу поделиться работающим примером, которым я пользовался в различных проектах.
Основная проблема с Gmail (или адресом, подключенным к Google Apps) заключается в том, что для работы с ними требуется соединение по SSL. Как это часто случается в Ruby, решение практически элементарное: вам просто нужно установить gem под названием tlsmail с помощью следующей команды:
gem install tlsmail
После этого, просто пропишите настройки требуемого почтового ящика, например в инициализаторе mail.rb или где вам угодно, не забывая добавить в начало строчку:
require 'tlsmail'
И выставляя параметр :tls в значение true.
Вот полный кусок кода:
# Кофигурация почты только для режима production
if RAILS_ENV == 'production'
require 'tlsmail'
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.default_charset = "utf-8"
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:domain => "your-domain.com",
:address => 'smtp.gmail.com',
:port => 587,
:tls => true,
:authentication => :plain,
:user_name => 'address@your-domain.com',
:password => 'your-password'
}
end
Видите? С помощью gem'а tlsmail настройка почты Google стала очень простой.