Is there an addon or customization that can require the recipient of a public link to enter their name and email address before accessing the contents of the link?
At the moment, I have the activity emails coming which only tell me that the link was downloaded but there are no details supporting it. I would even be willing to accept the IP address that the link was accessed from.
My end goal is to have an auditing trail to prove that the contents were downloaded by the intended party.
You would have to look up the IP address in the apache logs for each of the downloads.
Not sure how you could script that into the activity email and if that is even possible.
If you are going to require people to enter name and/or email address manually you are not able to confirm the user entered data. People can just enter whatever.
Alternatively, if you only have named people with email addresses that should be able to download your files, you could look into the guests app and (completely [depends on your use case]) disable public link shares.
This allows you to share files and folders by just entering an email address. This will trigger an invite email to the user and generate that user in the ownCloud database. The user will not be able to access any other files other than the files shared with them. They will only be able to upload files if they have been specifically granted the right to do it.
If you are willing to write some code, you can write an app for this purpose. The server dispatches share.linkaccess event for all the link accesses. You can regiser a listener for this event in your app and do whatever you want in event callback.
You can see similar event usages in below link: