• Status Planned   Reopened
  • Percent Complete
  • Task Type Feature Request
  • Category Backend/Core
  • Assigned To No-one
  • Operating System All
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version 1.1 devel
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Flyspray
Opened by jordanmendler - 17.01.2013
Last edited by peterdd - 10.12.2015

FS#1812 - Multiple email addresses

An account should be able to have multiple email addresses associated with it. For example, my primary email might be, but I should also be able to log in via or other addresses I add.

The task blocks this from closing
ID Project Summary Priority Severity Assigned To Progress
1819 Flyspray FS#1819 - Communicate via email Very Low Low
Project Manager

Reopened and set to only 20%, because:

  • currently only used for create user, not edit user.
  • currently the primary email of {users} is just copied to user_emails, so it is currently 2 times stored.
  • id-field of the table {user_emails} is the user_id referencing table {users}, so it should be named like this. It is not a real table id, a user account can have multiple emails, oauths, xmpp/jabbers..
  • Having this feature enabled, it adds more complexity that must be considered:
  1. Notifications: Should Flyspray send notifications to every email (when NOTIFY_EMAIL or NOTIFY_BOTH is set currently) of that user account or only to the main email account? Possible configuration options - like one email that receives all notifications, and another email that receives only the most important or a daily summary)
  2. Are the email addresses unique or can several user accounts have the same email?
  3. The same problems for xmpp/jabber, OAuth2, …
  • The UI for managing multiple emails, multiple xmpp/jabber, multiple OAuth2 must be planned(!) and written.
  • Should we store one address (email, xmpp/jabber, OAuth2) or together in a user_email entry:


3 12345github
3 12345facebook

Or should we do a complete table change with type(email, jabber, oauth, ..) field:
table user_address:

3emailu3s@example.comNULL1TASK_CLOSE, TASK_EDITdaily summary(id)
3oauth12345github1 (enabled) NULLNULL
3oauth12345facebook0 (disabled) NULLNULL
3sms+49 555555NULL1TASK_NEW0
3whatsapp, other proprietary080012345NULL0ALL0
  1. Permissions and edit/delete handling.

Unique index: [address_type,address,address_provider] (working also with NULL or empty string?)
or merge address and address_provider..

edit by peterdd 2021-03-11: some typo fixes

Project Manager

The more I think about it we should consider something like the third option, an new table

'user_address' (or 'users_addresses')

For FS1.2 maybe.

This removes current limitations and makes adding additional address types and notification channels easy. And the current table user_emails isn't really used. (only when people registering, but no usage later)

Project Manager

TODO: Each additional given Email address must be also validated in the same way like the primary email address to avoid abuse of email addresses.

E.g. send a link with token to this email that the receiver must click to validate the additional email with a user account in flyspray.


Available keyboard shortcuts


Task Details

Task Editing