While he makes some interesting points, I think he misunderstands the spam issue, and why his users, especially free users, rightly marked his mail as "spam":
If I look at spam I get, some of it is "random" spam. E.g., someone I never heard of trying to sell me viagra, or asking me to help smuggle $10,000,000 he stole while being the president of his country. But a growing percentage of the spam are people who confused a one-time business relationship with my desire to read all about them and their products for the next 20 years. E.g., I'm constantly getting mails from a particular hotel I once stayed at, mails from some company I once bought from, etc. People *hate* that, and it doesn't really help that they once used your services - they still hate the spam.
But why did free users complain more? That's easy: Every paying user remembered you and your service, and most of them "forgave" the one time "thank you mail" (but be warned, they won't so easily forgive repeated annoyances). From the free users, a lot of them probably don't even remember what service you provided them. Heck, it is possible that half of them never even fully used (e.g., didn't even complete a card) or didn't enjoy your service, and you don't know that. These people have no recollection who you are, and thought that even a "thank you" letter was an outright spam.
What should you do about the spam thing next time? Don't make the "I want to get mails" checkbox hidden in some long form and default to on. You have two options - either make it default to "off" (so only people who REALLY want to get your mails will get them, but be warned that few people will actually want that), or, if you want it to default to "on" make a very very clear screen which basically says "I'm giving you this service for free, in exchange for the right to mail you in the future. If you do not agree, or would consider such mails to be spam, please do not use this service.".