Подтвердить что ты не робот

Конфигурация 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 также подключается.

4b9b3361

Ответ 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
  }