def _share_project(self, destination, project, to_user, force_send, auth_role='', user_message='',
                       share_users=None):
        """
        Send message to remote service to email/share project with to_user.
        :param destination: str which type of sharing we are doing (SHARE_DESTINATION or DELIVER_DESTINATION)
        :param project: RemoteProject project we are sharing
        :param to_user: RemoteUser user we are sharing with
        :param auth_role: str project role eg 'project_admin' email is customized based on this setting.
        :param user_message: str message to be sent with the share
        :param share_users: [RemoteUser] users to have this project shared with after delivery (delivery only)
        :return: the email the user should receive a message on soon
        """
        from_user = self.remote_store.get_current_user()
        share_user_ids = None
        if share_users:
            share_user_ids = [share_user.id for share_user in share_users]
        item = D4S2Item(destination=destination,
                        from_user_id=from_user.id,
                        to_user_id=to_user.id,
                        project_id=project.id,
                        project_name=project.name,
                        auth_role=auth_role,
                        user_message=user_message,
                        share_user_ids=share_user_ids)
        item.send(self.api, force_send)
        return to_user.email