В чем назначение дополнительного адреса электронной почты

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

Возможно ли это? Если нет, то каково назначение второго адреса электронной почты в Discourse?

Когда пользователь отвечает на пост в Discourse по электронной почте с дополнительного адреса, сообщение публикуется, а не отклоняется из-за неизвестного пользователя.

Вы имеете в виду, что если форум не использует email для тем, то дополнительный адрес электронной почты совершенно бесполезен и его нельзя использовать так, как просил OP, даже для вторичного входа?

Если так, то это для пользователей скорее просто лишний шум (да, я знаю — дополнительные адреса нужны, если используются варианты SSO, такие как Microsoft, Google и т. д.).

Первоначальное обсуждение этой темы находится здесь: Two emails for one user. Продолжение обсуждения: Additional email address per user account support.

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

В системе нет механизма, который заставлял бы Discourse пытаться отправить письмо на вторичный адрес электронной почты в случае, если письмо, отправленное на основной адрес, не доставлено. Я понимаю, как это может быть полезно в некоторых ситуациях.

Технически вторичные адреса электронной почты могут использоваться для поиска пользователя в любой момент, когда Discourse пытается найти пользователя по адресу электронной почты с помощью User.find_by_email.

Пользователи могут входить в систему Discourse, используя свой вторичный адрес электронной почты.

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

Интересно, что если включена настройка сайта auth overrides email и внешний провайдер аутентификации предоставляет вторичный адрес электронной почты пользователя, то этот вторичный адрес становится основным, а первоначальный основной адрес уничтожается. Ранее такой случай вызывал ошибку входа, поэтому такое поведение, похоже, намеренное. Мне пришлось потратить слишком много времени на поиск места, где это происходит: discourse/app/models/user.rb at main · discourse/discourse · GitHub. (Первоначальный основной адрес электронной почты уничтожается при сохранении пользователя.)

Это важно, чтобы в случае сбоя основного адреса электронной почты администратор или модератор мог попытаться связаться с владельцем аккаунта вручную через дополнительный адрес?

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

Это, безусловно, добавляет немного гибкости. Ситуация, когда пользователь теряет доступ к адресу электронной почты, который он использовал для создания аккаунта в Discourse, является одной из самых сложных в решении.

Да, это может быть сложно: подтвердить личность человека, который заявляет о наличии аккаунта, но не имеет доступа к основной электронной почте и не помнит пароль. Я указал резервный адрес электронной почты для своего аккаунта здесь, который использует другие серверы, так что, надеюсь, если с основным возникнут проблемы, резервный сработает.