On 9 Jun 2016, at 12:11, John Levine wrote:

The http specs are
quite clear that GET is not supposed to change the state on the web
server.  For that you use POST or PUT.

Not wrong...

Unfortunately, that horse died of old age a decade ago, 5 counties away from the former location of the barn that it escaped from, which is now the crumbling parking lot of a shopping mall obviated by Amazon. It's difficult to convince many "web developers" these days even that a 'GET' should at least be idempotent.

The key practical advantage of your model over the generally bad idea of "one-click" unsub links is that it is more resistant to casually careless or ignorant user error. That does not change the fact that the *general* idea of putting tokens in email headers that can be robotically used by anything/anyone with access to the unmodified message in transit or post-delivery to change account state (even a trivial 'account' like a list subscription) is intrinsically flawed. Mail travels too often across unencrypted links and headers aren't encrypted even when bodies are. This makes mail is an attractive target in transit and at rest, so even without any a priori motivation to unsub random people from random lists, the ability of a miscreant to do so recklessly by accident is created by "one-click" unsub links of any sort. A protocol like yours for combining headers thwarts that, but it still leaves the problem of easing the way for automating intentional random mischief.

There very much needs NOT to be a universal automatable standard mechanism that would allow every MUA author to put an "Unsubscribe" button on every compliant message that would not bother users with handling a flock of different second-steps for different lists. I'm not saying unsub should ever be made objectively difficult but it SHOULD be a minor nuisance on the level of having a browser (or at least a "webview") window open and require the user to do something simple like acknowledging that they want to unsub an address that they either have to enter or confirm in munged form; e.g. Sears recently revived an ancient address I gave them ~20 years ago in association with a credit card that hasn't existed for a decade, and the unsub link (in a 7pt light-gray-on-white paragraph of a HTML-only message...) took me to a page that was much more considerate than their desperation spam. It had just a big, readably-formatted question (the *-munging may have been slightly less complete):

   Do you really want us to remove the address
   "b***-s***@s*c******.***" from our mailing list?

With "Yes" and "No" buttons: almost perfect. No password, not even a captcha, no need to remember precisely which address you gave to whom in the 90's or do header forensics to figure it out, and no risk of senders leaking limited-exposure addresses to harvesters. Maybe it would be nice to have had some options like: this list, all of a sender's lists, or all of the ESP's lists now and/or for all time (yes, seriously.) I also like some of the pages that ask why one is unsubscribing but on the other hand: simplicity has value.

Anyhow, my point is that unsubscribing from a list of any flavor should require a simple second conscious act to filter out acts of simplistic automation (of any motivation) or of human error. There should be heterogeneity in that second step so that it's never worthwhile for anyone to automate it into an opaque single click. The principle is the same one behind a "Trash" mailbox or the \Deleted flag in IMAP or 2-step file deletion in a GUI (i.e. "Trash" or "Recycle Bin" or "Are you sure?" dialogs.) The caveats are the same as well: people get annoyed by third steps and burdensome second steps.

_______________________________________________
mailop mailing list
mailop@mailop.org
https://chilli.nosignal.org/cgi-bin/mailman/listinfo/mailop

Reply via email to