• There is a role, DatabaseMailUser, in msdb that you can put users in.

    I'm a fan of option 1 in your case, even though Database Mail is asynchronous, I just don't like sending mail from a trigger, you could do it.

    I'm doing some research on issues like this using signed modules. I'll have to see if it will work here.