1

deviseが送信する確認メールのリンクをクリックすると、アプリケーションで認識されないパスに移動しているようです。

URLは次のようになります。

http://glowing-flower-855.heroku.com/users/confirmation?confirmation_token=lIUuOINyxfTW3TBPPI

これは正しいように見えますが、私の500.htmlファイルに移動しているようです。

これは、Deviseのconfirm!メソッドをオーバーライドするユーザーモデルのこのコードと関係があります。

def confirm!
  UserMailer.welcome_message(self).deliver
  super
end 

私のログによると、これはエラーです:

2011-06-10T03:48:11+00:00 app[web.1]: ArgumentError (A sender (Return-Path, Sender or From) required to send a message): 
2011-06-10T03:48:11+00:00 app[web.1]: app/models/user.rb:52:in `confirm!'

この線を指すもの:UserMailer.welcome_message(self).deliver

これが私のユーザーメーラークラスです:

class UserMailer < ActionMailer::Base
  def welcome_message(user)
    @user = user
    mail(:to => user.email, :subject => "Welcome to DreamStill")
  end
end
4

1 に答える 1

7

「from:」の値がありません。SMTP処理には必須です。

class UserMailer < ActionMailer::Base
  # Option 1
  #default_from "bob@dylan.com"

  def welcome_message(user)
    @user = user
    mail(
      # Option 2
      :from => "paul@mccarthy.com",
      :to => user.email, 
      :subject => "Welcome to DreamStill"
    )
  end
end
于 2011-06-10T04:37:50.873 に答える