1.i think the best solution is to
make a table with 2 fields :1-a uniq code for every email,2- the email. in email put a link unsubscribe.php?code=blabla&email=xxx;
if the user read the email and click the link unsubscrube ... , when the page unsubscribe is open you verify if $HTTP_GET_VARS["email"]&&$HTTP_GET_VARS["code"] is in table delete from table. (the script who send information is in crontab)
2.make a cookie where you put the email when the user subscribe and when the user click on unsubscribe u read email from the cookie. but if the user delete the cookie from his computer u can unsubscribe him only if he subscribe again