我在我的production.rb和development.rb上有这个代码。
config.active_record.dump_schema_after_migration = false
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { host: 'mydomain.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.office365.com',
port: '587',
authentication: 'login',
domain: 'mydomain.com',
user_name: "username@mydomain.com",
password: "password",
enable_starttls_auto: true,
openssl_verify_mode: 'none'
}
我正在尝试使用动作邮件程序从我的办公室365邮件帐户发送邮件。这样就可以在localhost上完美地发送邮件。但它在生产过程中引发了以下错误。我正在使用digitalocean服务器。
App 7718 stdout:[7bd99d32-f3c4-49c3-abfd-ff19fa7ddb8a]在8800ms内完成500内部服务器错误(ActiveRecord:1.6ms) App 7718标准输出:[7bd99d32-f3c4-49c3-abfd-ff19fa7ddb8a]
App 7718标准输出:[7bd99d32-f3c4-49c3-abfd-ff19fa7ddb8a] Net :: SMTPAuthenticationError(535 5.7.3认证失败[CO2PR04CA0117.namprd04.prod.outlook.com]
我已经在谷歌的各个地方进行了搜索,但大多数都有gmail解决方案而不是办公室。所以,我找不到确切的问题。
答案 0 :(得分:0)
ActionMailer::Base.smtp_settings = {
address: ENV['SMTP_ADDRESS'],
port: ENV['SMTP_PORT'],
domain: ENV['SMTP_DOMAIN'],
authentication: 'login',
enable_starttls_auto: true,
user_name: ENV['SMTP_USERNAME'],
password: ENV['SMTP_PASSWORD']
}
我已经拥有使用上述设置的Office 365帐户。
另一件让我感到困惑的是你需要从你用来登录的实际帐户发送。例如,请勿从noreply@brownwebdesign.com发送电子邮件,并使用support@brownwebdesign.com作为您的SMTP_USERNAME。
此处有更多信息:https://www.brownwebdesign.com/blog/connecting-rails-to-microsoft-exchange-smtp-email-server