Impacted versions:

8.0

Steps to reproduce:

To reproduce this one, you have to configure outgoing and incoming server and mail aliases

see https://youtu.be/-HzDGh9C9Jc

Current behavior:

If you add a user which has no acces on a object (purchase.order in this case) as follower on a record of this object **AFTER someone has responded by email on this record**, and if you send an message on this record, an exception is raised at the connection of the user added as a follower.

Expected behavior:

No exceptions should be raised at the connection of the user added as a follower.

Video/Screenshot link (optional):

https://youtu.be/-HzDGh9C9Jc

addons/mail/mail_message.py
return [('to_read', '=', True)]
    def _get_default_from(self, cr, uid, context=None):
        this = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)
        if this.alias_name and this.alias_domain:
            return formataddr((this.name, '%s@%s' % (this.alias_name, this.alias_domain)))
        elif this.email:
            return formataddr((this.name, this.email))
        raise osv.except_osv(_('Invalid Action!'), _("Unable to send email, please configure the sender's email address or alias."))
    def _get_default_author(self, cr, uid, context=None):
        return self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context).partner_id.id
    _defaults = {
        'type': 'email',
        'date': fields.datetime.now,
        'author_id': lambda self, cr, uid, ctx=None: self._get_default_author(cr, uid, ctx),
        'body': '',
        'email_from': lambda self, cr, uid, ctx=None: self._get_default_from(cr, uid, ctx),
    }
    
    
    
    def vote_toggle(self, cr, uid, ids, context=None):