导轨 3.0.0
这是我在环境/production.rb 中的配置:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "<domain>",
:user_name => "<un>@gmail.com",
:password => "<pw>",
:authentication => "plain",
:enable_starttls_auto => true
}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
我还尝试按照另一篇 Stack Overflow 帖子中的建议注释掉该域。
我尝试通过我的应用程序和控制台发送邮件。在控制台中没有错误,它返回邮件对象但不显示任何其他内容。当我尝试通过应用程序发送时,日志显示它呈现了我的用户邮件模板。
我在 Linode 上托管我的应用程序,但他们向我保证这种方法“应该”有效,并且 Linode 不应该是问题。我还检查以确保我的应用程序正在“生产”中运行。
调试这个有什么想法吗?我尝试发送到三个不同的常见电子邮件主机。
编辑:这是我在控制台中发送邮件的代码:
user_mailer.rb
class UserMailer < ActionMailer::Base
default :from => "myaccount@gmail.com"
layout 'user_layout'
def activation(user)
@user = user
mail(:to => @user.email, :subject => 'Activate your account')
end
end
console command
> u = User.last
> u.email
#myotheraccount@gmail.com
> UserMailer.activation(u).deliver
更新 2:当我添加一个纯文本视图模板时,发送很好。所以只是发送 HTML 版本有问题。我已经简化了我所有的 HTML 模板以包含简单的标签和标准的 doctype html,但仍然没有骰子。