>> Technologie Électronique >  >> Maison intelligente >> Vie connectée

Comment ajouter une ligne d'objet (subject) dans un lien mailto HTML

L'attribut mailto: dans un lien HTML (<a href="mailto:...">) ouvre le client mail par défaut avec le destinataire pré-rempli. On peut ajouter objet (subject), corps (body), CC, CCI (BCC) via des paramètres URL.

Syntaxe de base

<a href="mailto:destinataire@example.com">Envoyer email</a>

Ajouter l'objet (subject)

Ajoutez ?subject=Votre%20Objet après l'email. Encodez les espaces (%20) et caractères spéciaux (URL encoding).

<a href="mailto:destinataire@example.com?subject=Demande%20de%20devis">Demander un devis</a>

Paramètres multiples (subject, body, cc, bcc)

Séparez par & (esperluette).

<a href="mailto:destinataire@example.com?subject=Demande%20de%20devis&body=Bonjour%2C%0D%0AJe%20souhaite%20un%20devis%20pour...&cc=collegue@example.com&bcc=archives@example.com">
  Contactez-nous
</a>

Règles d'encodage (IMPORTANT)

  • Espace → %20 (ou + dans query string).
  • Retour à la ligne → %0D%0A (CRLF) ou %0A (LF).
  • Caractères spéciaux (&, %, #, ?, =, etc.) → encodage URL (%XX).
  • Utilisez encodeURIComponent() (JavaScript) ou outils en ligne pour générer le href complet.

Exemple complet prêt à l'emploi

<a href="mailto:contact@monsite.com?subject=Inscription%20Newsletter&body=Bonjour%2C%0D%0AJe%20souhaite%20m%27inscrire%20%C3%A0%20la%20newsletter.%0D%0AMerci%21">
  S'inscrire à la newsletter
</a>

Générateur rapide (JavaScript)

function mailtoLink(email, subject, body, cc, bcc) {
  const params = new URLSearchParams();
  if (subject) params.set('subject', subject);
  if (body) params.set('body', body);
  if (cc) params.set('cc', cc);
  if (bcc) params.set('bcc', bcc);
  return `mailto:${email}?${params.toString()}`;
}

// Usage
const href = mailtoLink('contact@ex.com', 'Devis', 'Bonjour,\nJe veux un devis.', 'cc@ex.com', 'bcc@ex.com');
// href = "mailto:contact@ex.com?subject=Devis&body=Bonjour,%0AJe%20veux%20un%20devis.&cc=cc@ex.com&bcc=bcc@ex.com"

Limites & Bonnes pratiques

  • Longueur max URL (~2000-2083 chars selon navigateurs/serveurs). Corps long = problème.
  • Dépend du client mail par défaut de l'utilisateur (Outlook, Thunderbird, Gmail web, Apple Mail...). Comportement peut varier.
  • Ne fonctionne pas si pas de client mail configuré (webmail seul sans handler mailto).
  • Alternative robuste : Formulaire HTML POST vers script backend (PHP, Node, Python) qui envoie l'email côté serveur (SMTP). Contrôle total, pas de limite client.
Vie connectée