Is it possible to temporarily override the language setting?

Add a locale filter

add_filter('locale', 'locale_filter');

and in the filter return the locale of your choice,

function locale_filter($locale) {
    return "whatever";
}

however, this needs to be done in context, your mail sending trigger will need to know the target user and get the locale from there, not very easy, although doable.