Do you NOT want the id to showing in the URL for vanity reasons? Or, more for security reasons?
Needing the link to be distinctive pretty much forces you to have the parameter after your file name, right?
If it's more for security reasons, you can always use something like base64_encode() to create the value of "id" shown in the link. And then using base64_decode() on the receiving page.
You could also have that "id" simply be a lookup_id. Once the receiving page gets it, it could cross-reference to find the actual id.
(just trinket ideas)
If you want a little more advanced idea, you could create a link where the email_id is part of the actual name of a file or directory (i.e. www.mysite.com/12345). When the user goes to that URL, your server will not find the page and therefore call whatever page a 404 error is set to call. This called page could serve as sort of a "dispatcher", where you could do many things. In this case, you could parse the URL not found (www.mysite.com/12345) and change it to a valid path, (such as www.mysite.com/account.php?id=12345).
This solution allows you to have a little cleaner looking link for the user to see initially, an yet it's distinct enough to allow you to transform it into a legit link "behind the scenes" -- in a split second!
(good luck)