The User object has a LastLoginDate field , you can report this to users where IsPortalEnabled true , which indicates that they are a user of the client portal if you are reporting through code.
Of course, the Salesforce reporting engine can also be used to create a report, you need something similar to this:

If you do not need a list in the code for any reason (for example, to integrate with another system), you should use the reporting mechanism, and then you can schedule it for email delivery, etc.
source share