Upgrade to 1.0.0-rc866

Concerns: pushword/newsletter

Audiences carry a postal address

An optional address on the audience, printed at the foot of every mail it sends, in both the HTML and the text part. Concerns sites sending commercial mail: US law (CAN-SPAM) asks for one, so fill it in before the next send — Newsletter → Audiences → Sender. A site calling MailRenderer::text() itself now passes the audience as its first argument.

Confirmation mails are capped per address

The subscribe endpoint sends at most one confirmation per address and audience every ten minutes, and five a day: the per-IP ceiling could not see a list-bombing spread over a botnet. Resubmitting inside the window answers exactly as before and sends nothing. Nothing to run in production.

Concerns test suites that post to /newsletter/subscribe: the ceilings live in the app cache pool, which outlives a run, so a suite subscribing a fixed address twice within ten minutes now gets no contact at all. Drop the two keys in setUp(), next to the per-IP one you are probably already clearing:

$address = md5('subscriber@example.com'.'|'.$audienceSlug);
$cache->deleteItem('pushword_newsletter_confirm_'.$address);
$cache->deleteItem('pushword_newsletter_confirmday_'.$address);