Current unsubscribe links are 190+ characters long.
First, you are contradicting your own recommendation: "Long links may cause bounces. Some ESPs will block emails with links (or any consecutive text) longer than 99 characters."
Second, such links look ugly in the text versions of the email.
I agree with Sasha on the fact that shortening links can make more harm than good. However, I would still recommend to implement a database-based solution, i. e. store all messages ever sent and reference them by ID. A 64-bit identified would be sufficient for these purposes, you can use 96-bit for extra security -- that would lead to just 16-character long base64-encoded identifiers -- way better that the current 150-characters monsters. In the era of super-cheap storage space I do not think it will be a problem to store such information for a very long time.
Current unsubscribe links are 190+ characters long.
First, you are contradicting your own recommendation: "Long links may cause bounces. Some ESPs will block emails with links (or any consecutive text) longer than 99 characters."
Second, such links look ugly in the text versions of the email.
I agree with Sasha on the fact that shortening links can make more harm than good. However, I would still recommend to implement a database-based solution, i. e. store all messages ever sent and reference them by ID. A 64-bit identified would be sufficient for these purposes, you can use 96-bit for extra security -- that would lead to just 16-character long base64-encoded identifiers -- way better that the current 150-characters monsters. In the era of super-cheap storage space I do not think it will be a problem to store such information for a very long time.