# Additional email address per user account support

**URL:** https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847
**Category:** Feature
**Created:** [24.Март.2017 14:14:41 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847 "2017-03-24T14:14:41Z")
**Posts on this page:** 9
**Page:** 3

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [13.Май.2019 06:27:53 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/46 "2019-05-13T06:27:53Z")

</div>

Howdy Jon!

You are certainly in the right place. Is this for dotnetfoundation? Can you email [team@discourse.org](mailto:team@discourse.org), we will get it sorted for you!

---

<div class="post-metadata">

### Author: ![decentral1se](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/decentral1se/32/149791_2.png) [@decentral1se](https://meta.discourse.org/u/decentral1se)
#### Post date: [06.Август.2019 09:08:07 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/47 "2019-08-06T09:08:07Z")

</div>

> [@LeoMcA](#):
>
> Да, откройте консоль Rails с помощью `rails c` и выполните что-то вроде этого:
> 
> ```plaintext
> UserEmail.create!(user: User.find_by_username("user1"), email: "user1@example.com")
> 
> ```

Да, отлично. Я всё настроил, и у меня это работает без проблем. Спасибо!

С нетерпением жду появления веб-интерфейса для этого 🚀

---

<div class="post-metadata">

### Author: ![turkeyphant](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/turkeyphant/32/153147_2.png) [@turkeyphant](https://meta.discourse.org/u/turkeyphant)
#### Post date: [15.Август.2019 18:08:20 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/48 "2019-08-15T18:08:20Z")

</div>

Очень рад, что это было интегрировано, и с нетерпением жду возможности попробовать…

---

<div class="post-metadata">

### Author: ![FireAllianceNX](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firealliancenx/32/141959_2.png) [@FireAllianceNX](https://meta.discourse.org/u/FireAllianceNX)
#### Post date: [03.Февраль.2020 04:25:27 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/49 "2020-02-03T04:25:27Z")

</div>

Извините, что оживляю старый пост, но я не нашёл ничего более подходящего.

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

Я пытался удалить вторичный адрес и использовать команду create в rails c, чтобы снова добавить этот действительный адрес как основной. Кажется, я упускаю какой-то шаг — нужно ли мне сохранять изменения в rails c после завершения?  
После успешного выполнения команд delete/create я просто ввожу exit, затем exit ещё раз и перезапускаю приложение через launcher.

Что я упускаю?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [03.Февраль.2020 04:31:30 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/50 "2020-02-03T04:31:30Z")

</div>

Кажется, нам не хватает здесь некоторого UX-функционала, но мы планируем улучшить его в следующем выпуске.

Вам придётся использовать консоль, чтобы это исправить. Не совсем уверен, какие команды вам понадобятся, возможно, @LeoMcA сможет помочь.

---

<div class="post-metadata">

### Author: ![FireAllianceNX](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firealliancenx/32/141959_2.png) [@FireAllianceNX](https://meta.discourse.org/u/FireAllianceNX)
#### Post date: [03.Февраль.2020 23:50:22 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/53 "2020-02-03T23:50:22Z")

</div>

Я выполнил следующие действия:

```
./launcher enter app
rails c
UserEmail.where(user_id: 7, primary: false).destroy_all
UserEmail.create!(user: User.find_by_username("user7"), email: "newemail@example.com")
exit
exit
./launcher restart app

```

Не уверен, что это была моя ошибка, но на этот раз я _только_ выполнил строку удаления. Перезапустил приложение и обновил веб-сайт. Дополнительный адрес электронной почты исчез! Поэтому я proceeded и выполнил остальные действия через веб-интерфейс, изменив основной адрес на дополнительный, так как он больше не заблокирован.

Спешу поправить себя: изменение адреса через веб-интерфейс отправляет подтверждение на действующий адрес, но сохраняет недействительный адрес, как только вы возвращаетесь на страницу настроек пользователя или страницу администрирования пользователя.  
Теперь я не знаю, что делать ☹

РЕДАКТИРОВАНИЕ:

На свой страх и риск засоряя эту ветку, я всё же разобрался.

После входа в rails c  
Я удалил все адреса — просто не знал, как установить адрес как Основной. Вот почему каждый раз, когда я добавлял действующий адрес заново, он добавлялся как дополнительный.

```
# Удалить все дополнительные адреса
UserEmail.where(user_id: 1234, primary: false).destroy_all
# Удалить основной адрес
UserEmail.where(user_id: 1234, primary: true).destroy_all

# Установить основной адрес
UserEmail.create!(user_id: 1234, email: "validemail@example.com", primary: true)

```

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

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [04.Февраль.2020 01:20:46 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/54 "2020-02-04T01:20:46Z")

</div>

Привет, Леон! Эта процедура, безусловно, не для слабонервных, и похоже, что вы на правильном пути. Действительно, было бы удобно иметь соответствующий UX для управления основными и дополнительными адресами электронной почты пользователей. Эта ссылка может вам помочь — она помогла мне!

> [@Rake task for merging users](https://meta.discourse.org/t/rake-task-for-merging-users/89086/33?u=tobiaseigen):
>
> Sure, this can be done in the rails console within the container. rails c # restrict to secondary emails, just in case you try to delete the wrong email UserEmail.where(email: "foo@example.com", primary: false).destroy\_all # probably not needed, but better safe than sorry EmailToken.where(email: "foo@example.com").destroy\_all

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [18.Март.2021 19:42:09 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/55 "2021-03-18T19:42:09Z")

</div>

Это полностью актуально на момент последнего релиза или двух предыдущих.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [18.Март.2021 19:42:12 UTC](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847/56 "2021-03-18T19:42:12Z")

</div>



[Previous page](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847.md?page=2)
