{
  "tool": "publipostage",
  "name": "Le Publipostage",
  "apiVersion": "1",
  "description": "Envoie un e-mail via le compte SMTP personnel du user, fourni par l'appelant à chaque appel. PREMIER outil de la suite qui N'EST PAS 100 % local : un navigateur ne peut pas ouvrir de socket SMTP, donc le serveur voit le mot de passe SMTP en clair le temps de cette requête (jamais stocké, jamais journalisé). L'appelant doit donc transmettre les identifiants SMTP complets à chaque appel — rien n'est mémorisé côté serveur pour lui non plus.",
  "url": "https://sui-juris.fr/p2p-tools/publipostage/",
  "ops": {
    "send": {
      "summary": "Envoie un e-mail unique via le compte SMTP fourni. Pour un envoi en masse, appeler plusieurs fois avec un délai entre chaque appel (ne pas envoyer en rafale).",
      "args": {
        "smtp": {
          "type": "object",
          "required": true,
          "description": "Identifiants SMTP du user (jamais stockés côté serveur). Champs : host (string), port (number, ex. 587), secure ('starttls'|'ssl'), user (string), password (string), from (string, adresse d'envoi), fromName (string, nom affiché)."
        },
        "to":      { "type": "string", "required": true, "description": "Adresse e-mail du destinataire." },
        "subject": { "type": "string", "required": true, "description": "Sujet de l'e-mail." },
        "html":    { "type": "string", "required": true, "description": "Corps de l'e-mail au format HTML." },
        "requestReceipt": { "type": "boolean", "required": false, "description": "Demande un accusé de réception standard (RFC 8098, Disposition-Notification-To) — pas garanti, dépend du client mail du destinataire." }
      },
      "returns": { "messageId": "Message-ID généré pour cet envoi (utile pour vérifier un accusé de réception plus tard)." }
    }
  }
}
