Sparrow Emailing réunit la plateforme de campagnes et le serveur SMTP : éditeur par glisser-déposer, segmentation, automation, envois transactionnels par API, et le suivi en temps réel des ouvertures, des clics et des désabonnements.
Cliquez sur un cas d'usage pour découvrir en détail comment Sparrow Emailing l'active pour votre entreprise.
Composez vos emails par glisser-déposer, sans écrire une ligne de code, puis choisissez précisément qui les reçoit. La segmentation s'appuie sur vos données : historique d'achat, zone géographique, activité récente, appartenance à une liste.
Confirmation de commande, facture, réinitialisation de mot de passe, code de vérification : ces messages sont attendus, ouverts et lus. Ils partent par API ou par SMTP depuis votre application, en quelques centaines de millisecondes.
Un scénario se déclenche sur un événement — inscription, achat, anniversaire, inactivité — puis déroule ses étapes tout seul, avec des délais et des conditions que vous fixez une fois pour toutes.
Vos applications — site, ERP, CRM, intranet — envoient par un serveur SMTP authentifié, sur une adresse IP dont la réputation vous appartient. Les boîtes de vos destinataires reconnaissent votre domaine, pas celui d'un tiers.
220 smtp.sparrowmessage.com ESMTP EHLO app.votresociete.ma 250-STARTTLS 250 AUTH LOGIN PLAIN STARTTLS 220 Ready to start TLS AUTH LOGIN 235 Authentication successful MAIL FROM:<[email protected]> 250 OK RCPT TO:<[email protected]> 250 Accepted DATA 354 End data with . 250 Queued as 8F2C1A
Un email envoyé n'est pas un email lu. Le tableau de bord distingue ce qui a été remis, ouvert, cliqué, refusé ou signalé — et vous dit pourquoi, adresse par adresse.
La plateforme et le serveur d'envoi dans un même abonnement, sans outil supplémentaire à brancher.
Composez un email propre en quelques minutes, à partir d'un modèle ou d'une page blanche. Le rendu s'adapte au téléphone comme à l'ordinateur, sans réglage de votre part.
Importez vos listes depuis un fichier ou votre CRM, dédoublonnez, segmentez, et laissez la plateforme retirer d'elle-même les adresses invalides et les désabonnés.
Authentification SPF, DKIM et DMARC, montée en charge de l'IP, surveillance des listes noires : l'objectif est la boîte de réception, pas le dossier indésirable.
Bienvenue, anniversaire, panier abandonné, réactivation : vos séquences se déclenchent sur un événement et se déroulent seules, avec vos délais et vos conditions.
Ouvertures, clics, rebonds, plaintes et désabonnements, campagne par campagne et contact par contact, avec export CSV et envoi par webhook.
Une API REST documentée et un serveur SMTP authentifié : vos applications envoient directement, dans le langage que vous utilisez déjà.
Aucune bibliothèque propriétaire à installer. Le SMTP fonctionne avec ce que vous utilisez déjà ; l'API REST s'appelle depuis n'importe quel langage.
POST /api/v1/login avec vos identifiants renvoie un jeton
(api_token) que vous placez ensuite dans l'en-tête
Authorization: Bearer {api_token} de chaque envoi.
Un compte peut porter plusieurs applications, chacune avec son jeton :
les statistiques restent séparées, application par application.
| Opération | Méthode | URL |
|---|---|---|
| Obtenir un jeton | POST | https://app.sparrowmessage.com/api/v1/login |
| Envoyer un email | POST | https://app.sparrowmessage.com/api/v1/mail/send/one |
| Envoyer en masse | POST | https://app.sparrowmessage.com/api/v1/mail/send/bulk |
| Serveur SMTP | SMTP | smtp.sparrowmessage.com — port 587 (TLS) ou 465 (SSL) |
SEMS
Amplitude RH
1 — Obtenir le jeton, puis envoyer un email.
<?php
$base = 'https://app.sparrowmessage.com/api/v1';
// ── Authentification : le jeton est à conserver, pas à redemander à chaque envoi
$ch = curl_init("$base/login");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Accept: application/json', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'email' => '[email protected]',
'password' => 'votre-mot-de-passe',
]),
]);
$auth = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($auth['code'] ?? '') !== 'OK') {
throw new RuntimeException($auth['error'] ?? 'Authentification refusée');
}
$token = $auth['user']['api_token'];
// ── Envoi unitaire
$ch = curl_init("$base/mail/send/one");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Content-Type: application/json',
"Authorization: Bearer $token",
],
CURLOPT_POSTFIELDS => json_encode([
'email' => '[email protected]',
'sujet' => 'Votre commande #4521 est confirmée',
'html' => '<p>Merci pour votre commande.</p>',
]),
]);
$envoi = json_decode(curl_exec($ch), true);
curl_close($ch);
// $envoi['message_id'] identifie l'email pour le suivi
// ── Envoi en masse : « emails » est un tableau d'adresses
$ch = curl_init("$base/mail/send/bulk");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Content-Type: application/json',
"Authorization: Bearer $token",
],
CURLOPT_POSTFIELDS => json_encode([
'emails' => ['[email protected]', '[email protected]'],
'sujet' => 'Nos offres du mois',
'html' => '<h1>Nouveautés</h1><p>Découvrez la sélection.</p>',
]),
]);
$masse = json_decode(curl_exec($ch), true);
curl_close($ch);
// $masse['mails_error'] liste les adresses refusées, le cas échéant
Avec requests, la bibliothèque HTTP la plus courante.
import requests
BASE = 'https://app.sparrowmessage.com/api/v1'
ENTETES = {'Accept': 'application/json', 'Content-Type': 'application/json'}
# ── Authentification
auth = requests.post(f'{BASE}/login', headers=ENTETES, json={
'email': '[email protected]',
'password': 'votre-mot-de-passe',
}).json()
if auth.get('code') != 'OK':
raise RuntimeError(auth.get('error', 'Authentification refusée'))
token = auth['user']['api_token']
entetes = {**ENTETES, 'Authorization': f'Bearer {token}'}
# ── Envoi unitaire
envoi = requests.post(f'{BASE}/mail/send/one', headers=entetes, json={
'email': '[email protected]',
'sujet': 'Votre commande #4521 est confirmée',
'html': '<p>Merci pour votre commande.</p>',
}).json()
print(envoi['message_id'])
# ── Envoi en masse
masse = requests.post(f'{BASE}/mail/send/bulk', headers=entetes, json={
'emails': ['[email protected]', '[email protected]'],
'sujet': 'Nos offres du mois',
'html': '<h1>Nouveautés</h1><p>Découvrez la sélection.</p>',
}).json()
print(masse['message_ids'], masse.get('mails_error'))
fetch est disponible nativement depuis Node 18.
const BASE = 'https://app.sparrowmessage.com/api/v1';
const JSON_ENTETES = { 'Accept': 'application/json', 'Content-Type': 'application/json' };
// ── Authentification
const auth = await (await fetch(`${BASE}/login`, {
method: 'POST',
headers: JSON_ENTETES,
body: JSON.stringify({ email: '[email protected]', password: 'votre-mot-de-passe' })
})).json();
if (auth.code !== 'OK') throw new Error(auth.error || 'Authentification refusée');
const entetes = { ...JSON_ENTETES, Authorization: `Bearer ${auth.user.api_token}` };
// ── Envoi unitaire
const envoi = await (await fetch(`${BASE}/mail/send/one`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
email: '[email protected]',
sujet: 'Votre commande #4521 est confirmée',
html: '<p>Merci pour votre commande.</p>'
})
})).json();
// ── Envoi en masse
const masse = await (await fetch(`${BASE}/mail/send/bulk`, {
method: 'POST',
headers: entetes,
body: JSON.stringify({
emails: ['[email protected]', '[email protected]'],
sujet: 'Nos offres du mois',
html: '<h1>Nouveautés</h1><p>Découvrez la sélection.</p>'
})
})).json();
HttpClient, sans dépendance externe.
using System.Net.Http.Json;
const string Base = "https://app.sparrowmessage.com/api/v1";
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("Accept", "application/json");
// ── Authentification
var auth = await (await http.PostAsJsonAsync($"{Base}/login", new {
email = "[email protected]",
password = "votre-mot-de-passe"
})).Content.ReadFromJsonAsync<JsonElement>();
if (auth.GetProperty("code").GetString() != "OK")
throw new Exception(auth.GetProperty("error").GetString());
var token = auth.GetProperty("user").GetProperty("api_token").GetString();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
// ── Envoi unitaire
var envoi = await http.PostAsJsonAsync($"{Base}/mail/send/one", new {
email = "[email protected]",
sujet = "Votre commande #4521 est confirmée",
html = "<p>Merci pour votre commande.</p>"
});
// ── Envoi en masse
var masse = await http.PostAsJsonAsync($"{Base}/mail/send/bulk", new {
emails = new[] { "[email protected]", "[email protected]" },
sujet = "Nos offres du mois",
html = "<h1>Nouveautés</h1><p>Découvrez la sélection.</p>"
});
java.net.http, intégré depuis Java 11.
String base = "https://app.sparrowmessage.com/api/v1";
HttpClient client = HttpClient.newHttpClient();
// ── Authentification
HttpRequest login = HttpRequest.newBuilder(URI.create(base + "/login"))
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{"email":"[email protected]","password":"votre-mot-de-passe"}"""))
.build();
String reponse = client.send(login, HttpResponse.BodyHandlers.ofString()).body();
String token = new JSONObject(reponse).getJSONObject("user").getString("api_token");
// ── Envoi unitaire
HttpRequest envoi = HttpRequest.newBuilder(URI.create(base + "/mail/send/one"))
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + token)
.POST(HttpRequest.BodyPublishers.ofString("""
{
"email": "[email protected]",
"sujet": "Votre commande #4521 est confirmée",
"html": "<p>Merci pour votre commande.</p>"
}"""))
.build();
client.send(envoi, HttpResponse.BodyHandlers.ofString());
// ── Envoi en masse : "emails" est un tableau
HttpRequest masse = HttpRequest.newBuilder(URI.create(base + "/mail/send/bulk"))
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + token)
.POST(HttpRequest.BodyPublishers.ofString("""
{
"emails": ["[email protected]", "[email protected]"],
"sujet": "Nos offres du mois",
"html": "<h1>Nouveautés</h1>"
}"""))
.build();
client.send(masse, HttpResponse.BodyHandlers.ofString());
Pour essayer depuis un terminal, avant d'écrire la moindre ligne.
# ── 1. Obtenir le jeton
curl -X POST https://app.sparrowmessage.com/api/v1/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"votre-mot-de-passe"}'
# Réponse :
# { "code":"OK", "token":"…", "user":{ "api_token":"…" } }
# ── 2. Envoyer un email
curl -X POST https://app.sparrowmessage.com/api/v1/mail/send/one \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer VOTRE_API_TOKEN" \
-d '{
"email": "[email protected]",
"sujet": "Votre commande #4521 est confirmée",
"html": "<p>Merci pour votre commande.</p>"
}'
# ── 3. Envoyer à plusieurs destinataires
curl -X POST https://app.sparrowmessage.com/api/v1/mail/send/bulk \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer VOTRE_API_TOKEN" \
-d '{
"emails": ["[email protected]", "[email protected]"],
"sujet": "Nos offres du mois",
"html": "<h1>Nouveautés</h1><p>Découvrez la sélection.</p>"
}'
Si votre application sait déjà envoyer des emails, il n'y a rien à coder : il suffit de changer les paramètres du serveur sortant.
Serveur : smtp.sparrowmessage.com
Port : 587 (STARTTLS) · 465 (SSL/TLS) · 2525 (secours)
Sécurité : TLS obligatoire
Utilisateur : fourni à l'ouverture du compte
Mot de passe: fourni à l'ouverture du compte
Expéditeur : une adresse de votre domaine authentifié
# ── Exemple en PHP, avec PHPMailer
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.sparrowmessage.com';
$mail->SMTPAuth = true;
$mail->Username = 'votre-identifiant';
$mail->Password = 'votre-cle';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('[email protected]', 'Votre Société');
$mail->addAddress('[email protected]');
$mail->Subject = 'Votre commande #4521 est confirmée';
$mail->isHTML(true);
$mail->Body = '<p>Merci pour votre commande.</p>';
$mail->send();
# ── Exemple en Python, sans dépendance
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg['Subject'] = 'Votre commande #4521 est confirmée'
msg.set_content('Merci pour votre commande.')
with smtplib.SMTP('smtp.sparrowmessage.com', 587) as s:
s.starttls()
s.login('votre-identifiant', 'votre-cle')
s.send_message(msg)
Toutes les réponses portent un champ code valant OK ou
KO : en cas de KO, error en donne la raison.
Documentation complète et bac à sable fournis à l'ouverture du compte.
Des organisations qui adressent chaque mois leurs clients, leurs fournisseurs, leurs collaborateurs et leurs adhérents.

Envoi mailing collaborateurs, fournisseurs et clients

Envoi mailing clients et collaborateurs

Envoi mailing fournisseurs

Envoi mailing clients

Envoi mailing clients

Envoi mailing adhérents

Envoi mailing adhérents

Envoi mailing clients et collaborateurs

Envoi mailing membres et partenaires

Envoi mailing candidats et entreprises

Envoi mailing clients et partenaires

Envoi mailing partenaires et donateurs

Envoi mailing candidats et entreprises

Envoi mailing clients et collaborateurs

Envoi mailing étudiants et partenaires

Envoi mailing clients

Envoi mailing professionnels du tourisme

Envoi mailing fournisseurs
Promotions, nouveautés, confirmations de commande et relances de panier abandonné.
Relevés, avis d'échéance, campagnes de fidélisation et messages réglementaires.
Convocations, résultats, informations aux parents et campagnes de recrutement.
Nouvelles annonces adressées au bon segment, suivi de dossier, relances prospects.
Avis d'expédition, suivi de livraison, information aux fournisseurs.
Convocations, appels de cotisation, lettres d'information aux adhérents.
Communication fournisseurs, notes internes, campagnes de recrutement.
Rappels de rendez-vous, résultats disponibles, campagnes de prévention.
L'abonnement couvre la plateforme, le serveur d'envoi et le support. Le volume d'emails inclus dépend du palier de contacts choisi.
Pour les entreprises qui démarrent leurs campagnes, de 500 à 15 000 contacts.
Pour les volumes soutenus et les envois transactionnels, de 10 000 à 50 000 contacts.
Au-delà de 50 000 contacts, ou avec des contraintes propres à votre organisation.
volume, adresse IP dédiée et engagement de service définis avec vous
Prix hors taxes. L'engagement annuel, réglé d'avance, bénéficie d'une remise de 10 % sur l'abonnement.
Choisissez votre pack et votre volume de contacts. Le devis reprend exactement ce que vous sélectionnez ici.
Jusqu'à 7 000 emails par mois inclus.
Trois domaines d'envoi sont inclus ; chaque domaine supplémentaire est facturé 100 DH par mois. L'IP partagée est incluse et convient à la plupart des volumes ; l'IP dédiée est facturée 100 DH par mois et par adresse. Ces deux options sont prises avec un engagement d'un an.
La facturation du pack de support est annuelle.
Estimation indicative hors taxes, établie sur la base de nos tarifs publics.
Le serveur SMTP se contente d'acheminer vos messages : il faut alors composer les emails et gérer les listes ailleurs. Le pack réunit les deux — la plateforme pour créer, segmenter et mesurer, le serveur pour envoyer — dans un même abonnement et avec une seule facture.
Le pack se choisit sur le nombre de contacts enregistrés dans votre base. À chaque palier correspond un volume d'emails inclus par mois, qui permet d'adresser plusieurs fois vos contacts. Un dépassement ponctuel ne bloque pas vos envois : il est régularisé avec vous.
C'est la capacité de vos emails à atteindre la boîte de réception plutôt que le dossier indésirable. Elle dépend de l'authentification de votre domaine (SPF, DKIM, DMARC), de la réputation de l'adresse IP d'envoi, de la propreté de vos listes et du comportement de vos destinataires. Nous agissons sur les quatre.
Pas nécessairement. En dessous d'environ 50 000 emails par mois, une IP partagée bien entretenue donne de meilleurs résultats : sa réputation est déjà établie. L'IP dédiée devient intéressante au-delà, ou si vous voulez maîtriser seul votre réputation d'expéditeur.
Trois enregistrements à publier : un SPF qui autorise nos serveurs à envoyer pour votre domaine, une clé DKIM qui signe vos messages, et une politique DMARC qui indique aux boîtes quoi faire d'un message non conforme. Nous vous fournissons les valeurs exactes et vérifions leur propagation.
Oui, depuis un fichier CSV ou Excel, ou directement depuis votre CRM. L'import dédoublonne, écarte les adresses mal formées et conserve les désabonnements antérieurs. Une base achetée ou collectée sans consentement reste en revanche à proscrire : elle abîme durablement votre réputation d'expéditeur.
Oui. Confirmations, factures et codes de vérification empruntent une file d'attente distincte de celle des campagnes : une grosse campagne en cours ne retarde jamais un email attendu par votre client.
Oui, à la hausse à tout moment, avec un ajustement au prorata. À la baisse, le changement prend effet à l'échéance de la période en cours.
Au Maroc, le traitement des données personnelles relève de la loi 09-08 et de la CNDP. Votre fichier de contacts doit faire l'objet d'une déclaration, et chaque envoi commercial suppose le consentement préalable du destinataire. Le lien de désabonnement figure sur tous nos envois et est traité immédiatement ; les consentements, dates de collecte et demandes de suppression sont conservés et exportables pour vos justificatifs. Nous ne sommes pas juristes : faites valider votre dispositif et votre déclaration CNDP par votre conseil.
Le lien de désabonnement est présent sur chaque envoi et traité immédiatement. Les consentements, les dates de collecte et les demandes de suppression sont conservés et exportables, de quoi alimenter votre registre des traitements. Nous ne sommes pas juristes : pour vos mentions d'information et la base légale de vos envois, faites valider votre dispositif par votre conseil.
L'ouverture du compte, l'authentification du domaine et la première campagne de test sont accompagnées. Une journée de formation peut être ajoutée pour vos équipes marketing, et l'interfaçage avec votre système d'information est chiffré en jours-homme.
Une démonstration de 30 minutes suffit pour voir la plateforme, l'éditeur et les statistiques sur un cas proche du vôtre.
Demander une démo
Votre plateforme emailing opérationnelle en 4 phases
De la signature au premier envoi, un parcours balisé et un interlocuteur unique.
Délai courant : compte ouvert sous 24 h, premier envoi dès la propagation des enregistrements DNS.