Конфигурация Rails ActionMailer для Zoho
кому-нибудь повезло настроить ActionMailer для отправки электронной почты через учетную запись Zoho?
это мои параметры:
ActionMailer::Base.smtp_settings = {
:address => "smtp.zoho.com",
:port => 465,
:domain => 'example.com',
:user_name => 'steve@example.com',
:password => 'n0tmypa$$w0rd',
:authentication => :login
}
, призвание .доставить Таймс-аут:
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!'
на помощь документы скажем, использовать порт 465 и аутентификацию SSL. Я пробовал С и без :enable_starttls_auto => true
но это все еще раз.
в частности,docs задать следующие параметры:
> Email Address: Username@yourdomain.com
> User Name format: Username@yourdomain.com
> 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 к smtp.zoho.com 465 также подключается.
6 ответов
# Action Mailer
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.zoho.com",
:port => 465,
:user_name => 'someone@somewhere.com',
:password => 'password',
:authentication => :login,
:ssl => true,
:tls => true,
:enable_starttls_auto => true
}
это сработало для меня. Ваши настройки могут быть прекрасны, некоторые локальные сети блокируют эти типы пакетов. Я должен был проверить его через мою сеть 3G.
FYI:
допустим, ваш домен abc.com.
Предположим, у вас есть "default from" в почтовом ящике с другим доменом, например
default from: "\"Elephant\" <el@ephant.com>"
этой не работает если вы не измените свой "default from", используя тот же домен в своей учетной записи zoho.
Итак,
default from: "\"Elephant\" <el@abc.com>"
будет работать.
Я не уверен, что 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
is localhost
в разработке и живой URL в производстве (например,example.com
)
у меня есть отправка почты с 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: 'username@domain.com', password: 'mypassword', authentication: :login, ssl: true }
end
вы можете, конечно, использовать это в производстве, добавив это в config/environments/production.rb
Я также установил адрес электронной почты в config/initializers/devise.rb
поэтому я могу отправить инструкцию по сбросу пароля.
config.mailer_sender = 'noreply@truhawk.com'
ссылки
эти настройки работали для меня в производстве.
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 => "admin@eyehawk.io",
:password => ENV['SMTP_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
}