Rails3.2.2でUbuntu10.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にchmodしました-優先度設定を削除しようとしました-nginxの代わりにrailsサーバーで実行しました
誰かが私を助けてくれることを願っています、事前に感謝します!(email.comは単なる代替品であり、有効なドメインを使用しています)
編集: 私がrailsコンソールを介してメール機能を実行しようとすると、sadiqxsの答えは確かに問題を解決します。しかし、私のブラウザでは、想定どおりに機能しません。奇妙なことに、これはnginxでのみ発生しているようです。nginxを停止し、Railsサーバーを起動すると、動作します。しかし、nginxがサーバーの場合、メールは送信されません。