レール 3.0.0
以下は、environments/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
また、別のスタック オーバーフローの投稿で提案されているように、ドメインをコメントアウトしようとしました。
アプリとコンソールの両方でメールを送信しようとしました。コンソールにはエラーはなく、メール オブジェクトが返されますが、他には何も表示されません。アプリを介して送信しようとすると、ユーザー メーラー テンプレートがレンダリングされたとログに表示されます。
私は自分のアプリを Linode でホストしていますが、この方法は「機能するはず」であり、Linode が問題であってはならないことを保証してくれます。また、アプリが「本番」で実行されていることも確認しました。
これをデバッグするためのアイデアはありますか? 3 つの異なる一般的な電子メール ホストに送信しようとしました。
編集:コンソールでメールを送信するための私のコードは次のとおりです:
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 を含めましたが、ダイスはまだありません。