How can I remove a trac user's e-mail address?

Solution 1:

No plugins necessary, if you're comfortable with the command line. TracAdmin is your friend.

List the name and email for the given sids (username):

trac-admin /usr/local/share/trac/test session list

SID      Auth  Last Visit  Name            Email            
------------------------------------------------------------
bob      1     1970-01-01  Bob Smith       [email protected]

where /usr/local/share/trac/test is the path to your project.

Now just send the empty string to clear their email address:

trac-admin /usr/local/share/trac/test session set email bob ""

Check that it worked:

trac-admin /usr/local/share/trac/test session list

SID      Auth  Last Visit  Name            Email            
------------------------------------------------------------
bob      1     1970-01-01  Bob Smith                        

Need to set it to something else? No problem:

trac-admin /usr/local/share/trac/test session set email bob "[email protected]"

trac-admin /usr/local/share/trac/test session list

SID      Auth  Last Visit  Name            Email            
------------------------------------------------------------
bob      1     1970-01-01  Bob Smith       [email protected] 

Solution 2:

You could go into the database and update the record:

 DELETE FROM session_attribute WHERE name = 'email' AND value = '[email protected]';

If you're using sqlite, it would be something like "sqlite3 trac.db", where trac.db is under your trac directory somewhere.

In addition, in trac.ini there are settings for automatically emailing changes and tickets.

always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true

If the person is still on tickets as one of those three, they will continue to get emails if the trac username is the first part of their email address and the setting "smtp_default_domain" matches the domain part.