Unsubscribes – system description

Storage of the block list, its scopes, the endpoints for adding and lifting blocks, and how the central sending path checks it before sending.

Overview

Block list: the shared sending path (Dlbtmail) checks it before sending and logs every skip. Sent mail carries an unsubscribe link (see the sending mail system description). Table names carry the installation's own prefix in the database; the table is mail_optout (address, scope, source, reason, client).

Endpoints

EndpointPermissionBehaviour
optout.listlistblock list with filter
optout.addaddafter a valid e-mail and scope (newsletter or all) calls dlbtmail->blockAddress(); the presence of dlbtmail is checked (error_mail_unavailable)
optout.deletedeleteoptout::deleteRow – lifts the block

The debug key is checked with canAction(debug). The keys are not classified in the seeds; in practice UNMAPPED.

Related topics: unsubscribe permissions