Contact form module for different users
You should be able to use the core contact form for this.

Basic documentation about setting it up can be found in the user contributed documentation on Drupal.org.

The contact form let you have a site contact form (sent to the default user), and a contact form tied to each individual user. When you enable the latter option, a tab "Contact" will appear when someone visit's that user's page (provided they're permitted to see it).

Individual users may disable other's access to their contact form, but the administrator may override this.

The core contact form can be configured through options and permissions.  It is very flexible, but it may take some tuning to get the exact behavior you want.