Ruby on rails 未设置ActionMailer值
我正在尝试使用以下配置发送电子邮件Ruby on rails 未设置ActionMailer值,ruby-on-rails,ruby-on-rails-4,actionmailer,Ruby On Rails,Ruby On Rails 4,Actionmailer,我正在尝试使用以下配置发送电子邮件 config.action_mailer.default_url_options = { :host => 'lototribe.com' } config.action_mailer.delivery_method = :smtp config.action_mailer.raise_delivery_errors = true ActionMailer::Base.delivery_method = :smtp ActionMailer::Bas
config.action_mailer.default_url_options = { :host => 'lototribe.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.zoho.com",
:port => '465',
:domain => 'lototribe.com',
:user_name => 'no-reply@lototribe.com',
:password => 'password',
:authentication => :plain,
:ssl => true,
:tls => true,
:enable_starttls_auto => true
}
正在抛出Net::ReadTimeout。Om正在检查我找到的堆栈跟踪
smtp.start(settings[:domain], settings[:user_name], settings[:password], settings[:authentication]) do |smtp_obj|
response = smtp_obj.sendmail(message, smtp_from, smtp_to)
end
在哪里
>> settings[:domain]
=> "localhost.localdomain"
>> settings[:user_name]
=> nil
>> settings[:password]
=> nil
>> settings[:authentication]
=> nil
这是从未预料到的价值。
有人能说出这些值设置错误的原因吗?尝试设置。执行“true”并将ActionMailer::Base声明更改为config.ActionMailer,如下所示:
config.action_mailer.raise_delivery_errors = false
host = ENV['EMAIL_DOMAIN']
config.action_mailer.default_url_options = { host: host}
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.zoho.com",
:port => 587,
:user_name => ENV["USERNAME"],
:password => ENV["PASSWORD"],
:authentication => :plain,
:enable_starttls_auto => true
}
我喜欢做的另一件事是在发送电子邮件时捕捉任何错误,因为发送电子邮件几乎总是会导致某种时间类型的错误。我拯救它,以便即使某些邮件失败,也能发送电子邮件:
MyMailer.send_email(subject: subject, user: user, message: message).deliver
rescue Net::OpenTimeout, Net::ReadTimeout, Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError => e
Rails.logger.error e.message
end