Nouveau guide : comment réchauffer une IP dédiée sans nuire à votre réputation. Lire maintenant →
MigoSMTP
Guides

Intégration SMTP

Utilisez n'importe quel client, application ou appareil SMTP. Copiez les valeurs de connexion depuis votre tableau de bord et activez TLS.

Détails de connexion

Utilisez toujours une connexion chiffrée. Authentifiez-vous avec votre nom d'utilisateur SMTP et une clé API comme mot de passe. Copiez l'hôte et le nom d'utilisateur exacts depuis la page SMTP de votre tableau de bord ; les valeurs ci-dessous en montrent la forme.

Host:     YOUR_SMTP_HOST
Port:     587 (STARTTLS) or 465 (implicit TLS)
Username: YOUR_SMTP_USERNAME
Password: YOUR_API_KEY

Quel port utiliser

Le port 587 avec STARTTLS est le port de soumission standard et le meilleur choix par défaut. Le port 465 utilise TLS dès le premier octet et convient aux clients qui l'attendent. Évitez le port 25 pour la soumission : il est destiné au courrier de serveur à serveur et de nombreux hébergeurs le bloquent.

Tester en ligne de commande

Confirmez l'authentification avant de câbler votre application. swaks envoie un message de test ; openssl montre la négociation TLS en cas d'échec.

swaks --to you@example.com --from hello@example.com \
  --server YOUR_SMTP_HOST:587 --tls \
  --auth LOGIN --auth-user YOUR_SMTP_USERNAME

openssl s_client -starttls smtp -connect YOUR_SMTP_HOST:587

Exemple : Node.js (Nodemailer)

Nodemailer fonctionne avec n'importe quel service SMTP. Gardez les identifiants dans des variables d'environnement.

const nodemailer = require("nodemailer");
const transport = nodemailer.createTransport({
  host: process.env.SMTP_HOST,
  port: 587,
  secure: false, // STARTTLS
  auth: { user: process.env.SMTP_USER, pass: process.env.MIGOSMTP_KEY },
});
await transport.sendMail({ from, to, subject, text });

Exemple : Python (smtplib)

La bibliothèque standard suffit pour un envoi simple.

import os, smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["From"], msg["To"], msg["Subject"] = "hello@example.com", "you@example.com", "Hello"
msg.set_content("It works.")
with smtplib.SMTP(os.environ["SMTP_HOST"], 587) as s:
    s.starttls()
    s.login(os.environ["SMTP_USER"], os.environ["MIGOSMTP_KEY"])
    s.send_message(msg)

En-têtes utiles à définir

Définissez un Reply-To si les réponses doivent aller ailleurs qu'à l'adresse d'expéditeur. Pour les envois en masse ou marketing, ajoutez un en-tête List-Unsubscribe, que les fournisseurs de messagerie recherchent. Utilisez une adresse d'expéditeur sur un domaine vérifié, sinon le message risque d'être rejeté.

Résultats de livraison

SMTP indique seulement que le message a été accepté. Pour savoir s'il a été livré, a rebondi ou a été signalé comme spam, utilisez les webhooks ou la vue d'activité du tableau de bord.

SymptômeÀ vérifier
535 Authentication failedVérifiez le nom d'utilisateur et que le mot de passe est une clé API valide avec la permission d'envoi.
Connection timed outVotre hébergeur bloque peut-être le port. Essayez 587 ou 465 et vérifiez les règles du pare-feu.
Erreur TLS ou de certificatUtilisez STARTTLS sur le 587 ou TLS implicite sur le 465, et gardez vos bibliothèques clientes à jour.
550 sender rejectedL'adresse d'expéditeur n'est pas sur un domaine vérifié. Vérifiez d'abord le domaine.
Erreur temporaire 421 ou 451Ralentissez et réessayez plus tard. Ne réessayez pas en boucle serrée.
Cette page vous a-t-elle été utile ?Contacter le support

Commencez à envoyer en quelques minutes.

Créez un compte, ajoutez votre domaine et envoyez votre premier e-mail.