1) As you already mentioned, use Roles and send unique emails to each role. Then you can identify the user by role.

2) If you are using LDAP to authenticate users to a Windows environment you can use SSO. You could give all LDAP users a (Free) Limited user license in PerfectForms. You can even synch with LDAP to create the licenses. Force SSO use for your form which would authenticate your users. Then you could use the User-Email function.