我正在运行带有 Rails 3.2.2 的 Ubuntu 10.04。
我刚刚安装并配置了 sendmail。当邮件通过终端发送时,它工作得很好。
但是当我尝试通过 Rails 调用它时,没有成功。
虽然它看起来并不像它失败了。我没有收到任何错误,并在我的控制台中看到:
#<Mail::Message:40338240, Multipart: false, Headers: <From: alert@email.com>, <To: chris@email.com>, <Subject: Hi chris, a testmail too you!>, <Mime-Version: 1.0>, <Content-Type: text/html>, <importance: High>, <X-Priority: 1>>
我正在开发中,我的 development.rb 中有以下设置:
config.action_mailer.delivery_method = :sendmail
config.action_mailer.sendmail_settings = {
:location => '/usr/sbin/sendmail',
:arguments => '-i -t'
}
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
我已经设置了一个带有相应 alert_mail.html.erb 的 actionmailer:
class UserMailer < ActionMailer::Base
default from: "alert@email.com"
def alert_mail(site)
@site = site
@user = site.user
@url = "http://example.com/login"
mail(:to => @user.email_address, :subject => "Hi chris, a testmail too you!", :importance => "High", 'X-Priority' => '1')
end
end
这就是我所说的:
UserMailer.alert_mail(site)
可能是有权限的东西吗?
我尝试过的事情-尝试在生产模式下运行-将 sendmail 可执行文件更改为 777-尝试删除优先级设置-使用 rails 服务器而不是 nginx 运行它
我希望有人可以帮助我,在此先感谢!(email.com 只是一个替代品,我使用的是有效域)
编辑: 当我尝试通过 rails 控制台执行邮件功能时,sadiqxs 的答案确实解决了问题。但是通过我的浏览器,它仍然无法正常工作。奇怪的是,这似乎只发生在 nginx 中。当我停止 nginx 并启动 rails 服务器时,它就可以工作了。但是当我使用 nginx 作为服务器时,它不会发送任何邮件。