Конфигурация Rails ActionMailer для Zoho
Кому-нибудь повезло настроить ActionMailer для отправки электронной почты через учетную запись Zoho?
Это мои настройки:
ActionMailer::Base.smtp_settings = {
:address => "smtp.zoho.com",
:port => 465,
:domain => 'example.com',
:user_name => '[email protected]',
:password => 'n0tmypa$$w0rd',
:authentication => :login
}
Однако время вызова .deliver:
irb(main):001:0> AdminMailer.signup_notification('asfd').deliver
Timeout::Error: Timeout::Error
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:929:in `recv_response'
from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:552:in `block in do_start'
from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:939:in `critical'
from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:552:in `do_start'
from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:519:in `start'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb:144:in `deliver!'
help docs говорят, чтобы использовать аутентификацию порта 465 и SSL. Я пробовал с :enable_starttls_auto => true
и без него, но он все еще не работает.
В частности, docs задают следующие настройки:
> Email Address: [email protected]
> User Name format: [email protected]
> Secure Connection (SSL) Yes
> Outgoing Mail Server Name: smtp.zoho.com
> Outgoing Port No.: 465
> Outgoing Mail Server requires authentication: Yes
Любые идеи?
p.s. Я настроил Outlook для использования настроек в справочных документах, и исходящая почта работает нормально. telnet to smtp.zoho.com 465 также подключается.
Ответы
Ответ 1
# Action Mailer
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.zoho.com",
:port => 465,
:user_name => '[email protected]',
:password => 'password',
:authentication => :login,
:ssl => true,
:tls => true,
:enable_starttls_auto => true
}
Это сработало для меня. Ваши настройки могут быть точными, некоторые локальные сети блокируют эти типы пакетов. Мне пришлось протестировать его через мою сеть 3G.
Ответ 2
FYI:
Скажем, ваш домен abc.com.
Скажем, у вас есть "default from" в вашей почтовой программе с другим доменом, например.
default from: "\"Elephant\" <[email protected]>"
Этот не будет работать, если вы не измените свой 'default from', используя тот же домен в вашей учетной записи zoho.
Таким образом,
default from: "\"Elephant\" <[email protected]>"
будет работать.
Ответ 3
Я не уверен, изменили ли настройки Zoho свои параметры безопасности, но ответ @Tyrel Richey не помог мне. Однако следующее:
/config/initializers/action_mailer.rb
..
# ActionMailer email configuration
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => ENV['SMTP_ADDRESS'],
:port => ENV['SMTP_PORT'],
:domain => ENV['SMTP_DOMAIN'],
:user_name => ENV['SMTP_USERNAME'],
:password => ENV['SMTP_PASSWORD'],
:authentication => :login,
:enable_starttls_auto => true
}
Где..
:address
= smtp.zoho.com
:port
= 587
:domain
находится в разработке localhost
, а живой URL-адрес в процессе производства (например, example.com
)
Ответ 4
У меня есть отправка почты с Rails 4.2.3, как это...
# config/environments/development.rb
Rails.application.configure do
#...
config.action_mailer.default_url_options = { host: 'domain' }
config.action_mailer.smtp_settings = { address: 'smtp.zoho.com', port: 465, user_name: '[email protected]', password: 'mypassword', authentication: :login, ssl: true }
end
Вы можете, конечно, использовать это и в производстве, добавив это к config/environments/production.rb
Я также установил адрес электронной почты в config/initializers/devise.rb
, чтобы я мог отправить пароль reset.
config.mailer_sender = '[email protected]'
Ссылки
Ответ 5
Эти настройки работали для меня на производстве.
Rails.application.routes.default_url_options[:host] = 'eyehawk.io'
config.action_mailer.default_url_options = { :host => 'eyehawk.io' }
config.action_mailer.perform_caching = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
:address => "smtp.zoho.com",
:port => 587,
:domain => "zoho.com",
:user_name => "[email protected]",
:password => ENV['SMTP_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
}