En cas d’erreur SMTP
Si vous rencontrez l’une des erreurs suivantes lors de l’envoi d’un e-mail :
SMTP ERROR: Failed to connect to server
Connection timed out (110)
SMTP Error: Could not connect to SMTP hostcela signifie que votre application ne parvient pas à établir une connexion avec le serveur SMTP configuré.
Le problème peut être lié à la configuration SMTP, au port utilisé, au réseau ou à un pare-feu.
Dans ce cas, vous pouvez utiliser notre API HTTPS comme méthode alternative d’envoi. Elle permet à votre application d’envoyer des e-mails via une connexion HTTPS sécurisée sur le port 443, sans utiliser directement les ports SMTP.
API :
https://api.ewodi.net/send.phpCette solution est particulièrement adaptée lorsque la connexion SMTP ne peut pas être établie depuis votre application ou votre serveur.
Informations nécessaires
Vous devez disposer de :
- votre adresse e-mail complète ;
- votre mot de passe de messagerie ;
- l’adresse du destinataire ;
- l’objet du message ;
- le contenu du message.
Le mot de passe doit être transmis uniquement dans une requête HTTPS. Il ne doit jamais être placé dans l’URL.
Format de la requête
La requête doit être envoyée avec la méthode POST et le type de contenu suivant :
Content-Type: application/jsonExemple :
{
"email": "utilisateur@example.com",
"password": "VotreMotDePasse",
"to": "destinataire@example.net",
"subject": "Message de test",
"text": "Bonjour,\n\nCeci est un message de test."
}L’adresse utilisée dans le champ email devient automatiquement l’expéditeur du message.
Test rapide avec cURL
Créez un fichier nommé message.json :
{
"email": "utilisateur@example.com",
"password": "VotreMotDePasse",
"to": "destinataire@example.net",
"subject": "Message de test",
"text": "Bonjour, ceci est un test d’envoi."
}Puis exécutez :
curl -i https://api.ewodi.net/send.php \
-H "Content-Type: application/json" \
--data-binary @message.jsonPour des raisons de sécurité, supprimez ensuite le fichier contenant le mot de passe.
Réponse en cas de succès
{
"success": true,
"message": "Message accepted for delivery"
}Le code HTTP attendu est :
202 AcceptedCela signifie que le message a été accepté pour traitement. La livraison finale peut encore prendre quelques instants.
Exemple PHP
<?php
$data = [
'email' => 'utilisateur@example.com',
'password' => 'VotreMotDePasse',
'to' => 'destinataire@example.net',
'subject' => 'Message envoyé avec PHP',
'text' => 'Bonjour, ceci est un message envoyé via l’API HTTPS.',
];
$curl = curl_init('https://api.ewodi.net/send.php');
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
echo $status . PHP_EOL;
echo $response . PHP_EOL;Exemple JavaScript
fetch("https://api.ewodi.net/send.php", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
email: "utilisateur@example.com",
password: "VotreMotDePasse",
to: "destinataire@example.net",
subject: "Message envoyé avec JavaScript",
text: "Bonjour, ceci est un test."
})
})
.then(response => response.json())
.then(result => console.log(result));Envoyer un message HTML
Vous pouvez utiliser le champ html :
{
"email": "utilisateur@example.com",
"password": "VotreMotDePasse",
"to": "destinataire@example.net",
"subject": "Message HTML",
"text": "Version texte du message",
"html": "<h1>Bonjour</h1><p>Ceci est un message HTML.</p>"
}Il est recommandé de fournir également le champ text afin que les logiciels ne prenant pas en charge le HTML puissent afficher une version lisible.
Codes d’erreur courants
| Code | Signification | Action recommandée |
|---|---|---|
202 | Message accepté | Aucune action nécessaire |
400 | Données manquantes ou invalides | Vérifier le format JSON |
401 | Identifiants invalides | Vérifier l’adresse e-mail et le mot de passe |
405 | Méthode HTTP incorrecte | Utiliser POST, pas GET |
413 | Requête trop volumineuse | Réduire la taille du message |
502 | Échec lors de l’envoi | Réessayer ou contacter le support |
503 | Service temporairement indisponible | Réessayer plus tard |
Recommandations de sécurité
- Utilisez toujours l’adresse commençant par
https://. - Ne transmettez jamais le mot de passe dans l’URL.
- Ne placez pas les identifiants directement dans un dépôt Git.
- Ne les affichez pas dans les logs.
- Utilisez, si possible, un mot de passe dédié à l’application.
- Limitez le nombre d’e-mails envoyés par minute.
- N’utilisez pas cette API pour envoyer des messages non sollicités.
- Vérifiez toujours l’adresse du destinataire avant l’envoi.
Cette API accepte actuellement les messages texte et HTML. L’envoi de pièces jointes nécessite une intégration spécifique.
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.