Courriel
LCAP et suppressions
Le courriel est transactionnel par défaut. Le courriel commercial exige un consentement LCAP au dossier, et les rebonds, les plaintes et les désabonnements ajoutent l’adresse à votre liste de suppression.
LCAP et courriel commercial
Le courriel est transactionnel par défaut : reçus, réinitialisations de mot de passe, alertes et avis de compte. Le courriel transactionnel n’exige aucun consentement enregistré.
Mettez is_commercial à true pour tout ce qui fait la promotion d’un produit ou d’un service. Un courriel commercial va à un seul destinataire, exige un consentement LCAP enregistré pour cette adresse, et porte un pied de page de désabonnement et un en-tête de désabonnement en un clic que les logiciels de courriel respectent. Enregistrez le consentement comme pour les SMS, avec email_address au lieu de phone_number.
Tout courriel de marketing doit définir is_commercial à true. Le champ vaut false par défaut, et un envoi transactionnel atteint aussi les personnes qui se sont désabonnées : un courriel promotionnel envoyé sans ce drapeau contournerait leur désabonnement et le consentement LCAP.
const { data, error } = await honkio.consents.create({
emailAddress: 'ada@example.com',
consentType: 'express',
sourceDescription: 'Newsletter checkbox on acme.ca/signup',
})
if (error) throw new Error(error.message)
console.log(data.status, data.email_address)curl -X POST https://api.honkio.ca/v1/compliance/consents \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"email_address": "ada@example.com",
"consent_type": "express",
"source_description": "Newsletter checkbox on acme.ca/signup"
}'// Before a commercial send: would it pass the CASL check?
const { data, error } = await honkio.consents.check({ emailAddress: 'ada@example.com' })
if (error) throw new Error(error.message)
console.log(data.allowed, data.consentType ?? data.reason)# Before a commercial send: would it pass the CASL check?
curl "https://api.honkio.ca/v1/compliance/consents/check?email_address=ada%40example.com" -H "Authorization: Bearer mk_live_YOUR_KEY"// Then a commercial send to that one address:
const { data, error } = await honkio.emails.send({
from: 'news@mail.acme.ca',
to: 'ada@example.com',
subject: 'Fall sale',
html: '<p>20% off this week.</p>',
isCommercial: true,
})
if (error) throw new Error(error.message)
console.log(data.id)# Then a commercial send to that one address:
curl -X POST https://api.honkio.ca/v1/emails -H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "from": "news@mail.acme.ca", "to": "ada@example.com", "subject": "Fall sale",
"html": "<p>20% off this week.</p>", "is_commercial": true }'DELETE /v1/compliance/consents/email/:address révoque les consentements actifs de cette adresse (exige compliance:m ou compliance:d) ; elle répond 404 NOT_FOUND si aucun n’est actif. Les désabonnements et les suppressions sont distincts et ne sont pas touchés.
Ceci décrit comment l’API applique la LCAP ; ce n’est pas un avis juridique sur vos propres messages.
Suppressions
Les rebonds définitifs et les plaintes pour pourriel ajoutent automatiquement l’adresse à votre liste de suppression, et plus aucun courriel ne lui est envoyé. Un désabonnement l’ajoute aussi, mais bloque seulement les courriels commerciaux : les reçus, les réinitialisations de mot de passe et les autres courriels transactionnels continuent d’arriver. Une adresse que vous bloquez vous-même ne reçoit plus aucun courriel. Vous pouvez lister les suppressions, ou en retirer une lorsque la personne demande à recevoir de vos nouvelles.
const { data, error } = await honkio.suppressions.list({ reason: 'hard_bounce' })
if (error) throw new Error(error.message)
for (const s of data.data) console.log(s.email_address, s.reason, s.created_at)curl "https://api.honkio.ca/v1/email-suppressions?reason=hard_bounce" -H "Authorization: Bearer mk_live_YOUR_KEY"// Sent with reason "manual", which every manual suppression has
const { error } = await honkio.suppressions.create({ emailAddress: 'ada@example.com' })
if (error) throw new Error(error.message)curl -X POST https://api.honkio.ca/v1/email-suppressions -H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" -d '{ "email_address": "ada@example.com", "reason": "manual" }'const { error } = await honkio.suppressions.remove('ada@example.com')
if (error) throw new Error(error.message)curl -X DELETE https://api.honkio.ca/v1/email-suppressions/ada%40example.com -H "Authorization: Bearer mk_live_YOUR_KEY"
HonkIO