Rails devise не отправляет подтверждение по электронной почте, но требует - PullRequest
7 голосов
/ 26 мая 2011

Я настроил Devise и могу создать профиль. Когда я создаю профили и пытаюсь войти в систему, я получаю сообщение об ошибке, что я не подтвердил свою учетную запись,

Мне так и не пришло письмо, от которого я должен подтвердить свой аккаунт. Я ошибся, выбрав такую ​​опцию, или не позволил Devise отправить мне электронное письмо?

Вот миграция, которую я использовал, чтобы сделать это:

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users, :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8') do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable
      t.confirmable
      t.encryptable
      t.column "first_name", :string  
      t.column "last_name", :string
      t.column "organization_name", :string

      t.timestamps
    end

    add_index :users, :email,                :unique => true
  end

  def self.down
    drop_table :users
  end
end

1 Ответ

15 голосов
/ 26 мая 2011

В режиме development вы должны добавить эту строку в config/environments/development.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

Затем проверьте журналы сервера, чтобы увидеть почту. Вы должны найти что-то вроде этого:

Предоставлено devise / mailer / translation_instructions.html.erb (19.5ms)

Отправлено письмо на example@mail.com (21951ms)

Дата: четверг, 26 мая 2011 г., 12:56:55 + 0200

От: sender@mail.com

Ответить: sender@mail.com

To: example@mail.com

Идентификатор сообщения: <4dde31f7944bd_5ac277e0e4785c6@L-Portable.mail>

Тема: инструкции по подтверждению

MIME-версия: 1.0

Content-Type: text / html;

кодировка = UTF-8 * * 1 032

Content-Transfer-Encoding: 7bit
<p>Welcome example@mail.com!</p>
<p>You can confirm your account through the link below:</p>
<p><a href="http://localhost:3000/users/confirmation?confirmation_token=Hi0tyRQU8cCFpAbatYFf">Confirm my account</a></p>

Вам также нужно поместить эту строку в config/initializers/devise.rb

config.mailer_sender = "sender@mail.com"

Если у вас ДЕЙСТВИТЕЛЬНО нет этого письма в ваших журналах, вы все равно можете проверить свою учетную запись, взяв значение confirmation_token в своей БД и перейти по этой ссылке

http://localhost:3000/users/confirmation?confirmation_token= #PUT_YOUR_TOKEN_HERE

И это должно сработать.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...