Ссылка подтверждения смены адреса электронной почты приводит к ошибке

Здравствуйте,
Я хотел изменить основной адрес электронной почты на своём аккаунте на форуме.
Я получил ссылку для подтверждения:

Когда я открываю ссылку и нажимаю кнопку «Подтвердить», появляется ошибка 500:

Ой
Программное обеспечение, управляющее этим форумом, столкнулось с неожиданной проблемой. Приносим извинения за неудобства.

Подробная информация об ошибке была зафиксирована в логах, и было автоматически сгенерировано уведомление. Мы разберёмся в этом.

Никаких дополнительных действий с вашей стороны не требуется. Однако, если ошибка повторяется, вы можете предоставить дополнительные детали, включая шаги для воспроизведения ошибки, опубликовав тему в разделе обратной связи на сайте.

В логах указано:
NoMethodError (undefined method `update!' for nil:NilClass) lib/email_updater.rb:119:in `update_user_email' lib/email_updater.rb:105:in `block in confirm' lib/email_updater.rb:80:in `confirm' app/cont

Есть какие-то идеи?

Я столкнулся с той же проблемой, хотя в логах не вижу ошибки, которую вы описываете.

Я администратор сайта, поэтому попробую создать тестовую учётную запись, чтобы проверить, нет ли каких-либо отличий.

В моём случае, похоже, шаблон «Подтверждение нового адреса электронной почты» где-то по пути не был обновлён. URL, отправляемый на неработающем сайте, выглядит так:

%{base_url}/u/authorize-email/%{email_token}

На новой установке URL в шаблоне такой:

%{base_url}/u/confirm-new-email/%{email_token}

Текст на (неработающем) сайте изменён, так что, видимо, это кастомный шаблон, который не обновлялся где-то за последние 7 лет :slight_smile:

У меня возникла проблема, которая появилась после смены моего основного адреса электронной почты — и некоторое время всё работало. Хотя я по-прежнему использую исходный адрес, который был указан при создании форума, адрес, на который я перенастроил получение уведомлений о новых сообщениях и темах, работал несколько месяцев, а затем внезапно перестал получать какие-либо письма. В своём профиле я увидел, что в настройках указан адрес администратора. Я вернул адрес для получения уведомлений обратно, и получил сообщение «Письмо для подтверждения отправлено»… однако оно так и не пришло. Я пробовал это неоднократно, и ни разу письмо не было доставлено, хотя уведомление об отправке приходит. Я даже пытался добавить этот адрес как дополнительный, но это тоже не сработало.

Адрес электронной почты, который не работает через Discourse, является действительным, и я получаю письма с трёх других форумов на базе Discourse. Когда я проверяю настройки своей учётной записи, вижу, что адрес помечен как «не подтверждён — отправить письмо для подтверждения повторно». В данный момент отображаются последние две попытки, которые я сделал, после того как отменил около дюжины предыдущих.

Мне трудно понять, что вы написали. Значит, вы администратор и самостоятельно изменили свой основной адрес электронной почты?

Я администратор. Я сохранил свой основной адрес электронной почты — тот, который использовал для активации форума. Однако при попытке добавить дополнительный адрес электронной почты это не удаётся. Кроме того, попытка изменить адрес электронной почты в настройках пользователя также завершается неудачей. На панели управления мой адрес электронной почты для входа администратора отображается корректно. Ежемесячные квитанции приходят на дополнительный адрес электронной почты.

Некоторое время я получал уведомления на дополнительный адрес электронной почты, но они внезапно прекратились. При проверке настроек теперь отображается статус «не подтверждён». Сколько бы раз я ни отправлял письмо с подтверждением, я его так и не получаю.

Привет, @codinghorror,
Я использую версию 2.8 beta, и у меня возникла та же проблема со ссылками в письмах с подтверждением. Они ведут на страницу ошибки, где ссылка перенаправления начинается с url8800…

Но всё работает, если я копирую и вставляю ссылку, видимую в теле сообщения, в браузер.

Есть какие-либо предложения?

Вы изменили текст письма? Если да, попробуйте сбросить текст письма к значениям по умолчанию.

Думаю, проблема решена.