1

レール 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 を含めましたが、ダイスはまだありません。

4

0 に答える 0