0

从实时服务器发送电子邮件时,

如果我使用 gmail 帐户配置 smtp 设置,它会成功发送邮件,

config.action_mailer.default_url_options = { :host => 'myhostip' }
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=> "mail.gmail.com",
  :port=> 587,
  :authentication=> "plain",
  :enable_starttls_auto=> false,
  :user_name=> "mymail@gmail.com",
  :password=> "password"
}

如果我使用我的服务器详细信息配置 smtp 设置,它不会发送邮件,而是会引发错误

Net::SMTPAuthenticationError(500 无法识别的命令)

这是在从设备为用户发送确认电子邮件期间触发的。

config.action_mailer.default_url_options = { :host => 'myhostip' }
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=> "mail.mydomain.com",
  :port=> 587,
  :domain=> "mydomain.com",
  :authentication=> "plain",
  :enable_starttls_auto=> false,
  :user_name=> "test@mydomain.com",
  :password=> "pwd"
}
4

1 回答 1

0

你必须使用 ActionMaliler::Base 而不是 config

   ActionMailer::Base.smtp_settings   #try this

  config.action_mailer.smtp_settings   #instead of  this

将您的 smtp 代码更改为以下。它现在应该可以工作了。

      ActionMailer::Base.smtp_settings = {
         :address        => 'path_to_address_specified_by_my_hoster',
         :port           => 25,
         :domain         => 'my_domain.com',
         :authentication => :plain,
         :user_name      => 'signup@my_domain.com',
         :password       => 'password'
          }
于 2015-01-30T12:28:05.687 回答