Documentation API

Mail Send API

API pour envoyer facilement des e-mails transactionnels. Prend en charge l'envoi unitaire immédiat et l'envoi par lot via file d'attente.

Permission requise : mail

POST /api/v1/mail/send

Envoie immédiatement un e-mail unitaire. L'envoi s'effectue via le SMTP provider par défaut de l'utilisateur.

Request Body

{
  "to": "user@example.com",
  "subject": "Order Confirmation",
  "html": "<h1>Your order has been confirmed</h1>",
  "text": "Your order has been confirmed",
  "from_email": "support@yourdomain.com",
  "from_name": "Your App",
  "reply_to": "reply@yourdomain.com",
  "cc": ["cc@example.com"],
  "bcc": ["bcc@example.com"],
  "tags": ["order", "confirmation"],
  "metadata": {"order_id": "12345"}
}

Parameters

Field Type Required Description
tostringYesE-mail du destinataire
subjectstringYesObjet de l'e-mail
htmlstringYes*Corps HTML (*html ou text requis)
textstringYes*Corps en texte brut
from_emailstringNoE-mail de l'expéditeur (par défaut : configuration SMTP provider)
from_namestringNoNom de l'expéditeur
reply_tostringNoAdresse de réponse
ccarrayNoListe des e-mails en copie
bccarrayNoListe des e-mails en copie cachée
tagsarrayNoTags d'e-mail (pour la classification)
metadataobjectNoMétadonnées personnalisées

Response

{
  "success": true,
  "data": {
    "message_id": "<abc123.1706600000@mailpass.im>",
    "status": "sent",
    "to": "user@example.com",
    "from": "support@yourdomain.com"
  }
}
POST /api/v1/mail/send-batch

Ajoute plusieurs e-mails à la file d'attente. Maximum 100 e-mails, traités par Cron.

Request Body

{
  "messages": [
    {"to": "a@example.com", "subject": "Hello A", "html": "<p>Hi A</p>"},
    {"to": "b@example.com", "subject": "Hello B", "html": "<p>Hi B</p>"}
  ],
  "from_email": "support@yourdomain.com",
  "from_name": "Your App"
}

Response

{
  "success": true,
  "data": {
    "total": 2,
    "queued": 2,
    "failed": 0,
    "messages": [
      {"to": "a@example.com", "status": "queued", "queue_id": 101},
      {"to": "b@example.com", "status": "queued", "queue_id": 102}
    ]
  }
}
GET /api/v1/mail/status/{message_id}

Consulte le statut et les événements de suivi des e-mails envoyés.

Response

{
  "success": true,
  "data": {
    "message": {
      "message_id": "<abc123@mailpass.im>",
      "from_email": "support@yourdomain.com",
      "to_email": "user@example.com",
      "subject": "Order Confirmation",
      "status": "sent",
      "error_message": null,
      "sent_at": "2026-01-30T12:00:00",
      "created_at": "2026-01-30T12:00:00"
    },
    "events": [
      {
        "event_type": "open",
        "ip_address": "192.168.1.1",
        "user_agent": "Mozilla/5.0...",
        "created_at": "2026-01-30T12:05:00"
      }
    ]
  }
}

Error Codes

Code HTTP Description
VALIDATION_ERROR400Champs requis manquants ou e-mail invalide
NO_SMTP_PROVIDER422Aucun SMTP provider par défaut configuré
SEND_LIMIT_EXCEEDED429Limite d'envoi quotidienne/horaire du SMTP provider dépassée
SEND_FAILED500Échec de l'envoi de l'e-mail

Exemples d'utilisation

cURL

# Single send
curl -X POST https://dev.mailpass.im/api/v1/mail/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "subject": "Hello",
    "html": "<p>Hello World</p>"
  }'

# Batch send
curl -X POST https://dev.mailpass.im/api/v1/mail/send-batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"to": "a@example.com", "subject": "Hi A", "html": "<p>Hello A</p>"},
      {"to": "b@example.com", "subject": "Hi B", "html": "<p>Hello B</p>"}
    ],
    "from_email": "support@yourdomain.com"
  }'

# Check status
curl https://dev.mailpass.im/api/v1/mail/status/MESSAGE_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

JavaScript (fetch)

// Single send
const response = await fetch('https://dev.mailpass.im/api/v1/mail/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    to: 'user@example.com',
    subject: 'Hello',
    html: '<p>Hello World</p>'
  })
});
const data = await response.json();
console.log(data.data.message_id);

PHP SDK

$client = new MailPass\Client('mp_live_YOUR_KEY');

// Single send
$result = $client->mail->send([
    'to' => 'user@example.com',
    'subject' => 'Hello',
    'html' => '<p>Hello World</p>',
]);
echo $result['data']['message_id'];

Configuration SMTP Provider requise

Pour utiliser le Mail Send API, vous devez d'abord ajouter un SMTP provider dans Tableau de bord > Paramètres SMTP et le définir par défaut. MailPass prend en charge son propre SMTP ainsi qu'Amazon SES, SendGrid, Mailgun, etc.

Nous utilisons des cookies

Nous utilisons des cookies pour améliorer votre expérience. Vous pouvez choisir les catégories de cookies à autoriser. En savoir plus