EMail broadcast sent weekly to members of MedScape site. There was a separate edition for each content "specialty" (channel), and a user could sign up for any number of editions (we set a default value).
Further, since the site required (free) registration, we new some info about each user. So we had separate mailings for US Physicians vs everyone else, so we could charge more for ads in the former. So there were actually 2 editions per clinical content specialty: 1 for US Physicians, and 1 for everyone else. The content was the same across the 2 related editions (with rare exceptions), but the ads would differ.
As of early 2000, we sent out roughly a million messages weekly, starting late Friday and running through much of the weekend. We output lists of email addresses from our registration/subscription database (1 list per "edition"), and used them within an application called N T Mail (with N T List), which was horribly supported but generally got the job done.
Opt-in/out: the CEO decided that one "cost of being a Medscape member" was to receive at least 1 issue of MedPulse. So at the time of registration, we'd default someone to a particular edition (e.g. a Cardiologist would get the Cardiology edition): they could change what edition they got during that process, but they couldn't end up with no subscription. Then, afterwards, they could go through a separate unsub process (they didn't actually have to wait until they receiving a mailing, but the point was they couldn't do it during the registration process).
Unsubscribing: the primary method was to get the user to log into the website, then go to a Profile/Settings page where they could change/cancel their MedPulse subscriptions. Eventually we got to a point where users could email into an address, and the address they sent from would be used to attempt an unsub for them (via a nasty set of hacks: exporting lists from Eudora, using Perl to run transactions against SQL, etc.); I can't remember whether we'd alert them if no match was found. We would have liked to put a personalized URL right in each message making it easier to unsub, but that would have killed the performance of the message-generation process.