Mandrill + Rails 不是通过控制器发送而是通过控制台发送
Posted
技术标签:
【中文标题】Mandrill + Rails 不是通过控制器发送而是通过控制台发送【英文标题】:Mandrill + Rails not sending via controller but sending via console 【发布时间】:2014-10-08 21:33:01 【问题描述】:您好,我遇到了一个非常奇怪的问题。我按照文档设置了山魈,现在我无法通过我的控制器发送邮件。甚至设计邮件似乎都不会发送....但我可以通过控制台发送它!
我的邮件配置
config.action_mailer.default_url_options = :host => 'smtp.mandrillapp.com'
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings =
:address => "smtp.mandrillapp.com",
:port => 587,
:enable_starttls_auto => true,
:user_name => ENV["MANDRILL_USERNAME"],
:password => ENV["MANDRILL_APIKEY"],
:authentication => 'plain',
:domain => 'yim.mydomain.org',
我的邮件
class YimMailer < ActionMailer::Base
default from: "notifier@yim.mydomain.org"
def welcome_email(user, data)
@user = user
@data = data
mail(to: @user.email, subject: 'Welcome!')
end
end
在我的控制器中:
YimMailer.welcome_email(current_user, dummydata).deliver
当我通过控制台执行同一行时,它会交付。可能是什么问题?
我正在使用 Rails 4
【问题讨论】:
试试set config.action_mailer.raise_delivery_errors = true 可以帮助你调试邮件问题,至少它可以告诉你在发送邮件的过程中是否有错误 我刚试过……什么也没发生。它似乎没有遇到任何问题。日志是干净的,但它仍然没有交付。 我也遇到了同样的问题,你找到解决办法了吗? 【参考方案1】:我遇到了同样的问题并重新启动了服务器(不小心),它也开始通过控制器工作!
【讨论】:
以上是关于Mandrill + Rails 不是通过控制器发送而是通过控制台发送的主要内容,如果未能解决你的问题,请参考以下文章
在 mandrill 模板中使用 Ruby/rails 变量
带有 Heroku 的 Rails 不发送 Mandrill 电子邮件