Donc, j'essaie d'utiliser un service appelé Postmark pour envoyer un e-mail au format HTML. Ils ont une certaine documentation de l'API here, et ils donnent cet exemple sur la façon d'utiliser CURL:Comment faire pour échapper des caractères dans une partie d'une demande JSON POST avec CURL?
$: curl -X POST "http://api.postmarkapp.com/email" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Postmark-Server-Token: ed742D75-5a45-49b6-a0a1-5b9ec3dc9e5d" \
-v \
-d "{From: '[email protected]', To: '[email protected]', Subject: 'Postmark test', HtmlBody: '<html><body><strong>Hello</strong> dear Postmark user.</body></html>'}"
Alors, c'est tout bon et fonctionne très bien quand j'utiliser mon propre jeton. Le problème est quand j'ajoute mon propre HtmlBody. Si j'envoie un message simple, cela fonctionne très bien. Dès que j'ajoute certains caractères spéciaux, ça casse. Par exemple, si je fais quelque chose comme ceci:
-d "{From: '[email protected]', To: '[email protected]', Subject: 'Postmark test', HtmlBody: '<!DOCTYPE html><html><body><strong>Hello</strong> dear Postmark user.</body></html>'}"
Il brise à cause de la !
. Comment puis-je réparer cela?
MISE À JOUR: Comme sourcejedi a fait remarquer que je suis en cours d'exécution depuis le shell (bash), de sorte que la question !
me fait sens maintenant. J'ai déplacé la chaîne JSON dans un fichier séparé appelé email.json et chargé en utilisant -d @email.json
. Cela a fonctionné pour un simple e-mail avec <!DOCTYPE>
, mais je me fais toujours l'erreur suivante lorsque je tente de charger le code HTML complet:
{"ErrorCode":402,"Message":"Received invalid JSON input."}
Je crois que cela a à voir avec d'autres caractères spéciaux. J'ai la même erreur quand j'utilise --data-urlencode @email.json
.
Toujours semble me casser un retour juste: -bash:! DOCTYPE: événement non trouvé – ralphthemagician
Je viens de tester le même sur ma fin. cela fonctionne bien .. êtes-vous sûr que vous recevez l'erreur .. voir la sortie de test que j'ai. J'ai également reçu l'erreur d'application 'Mauvais ou manquant de jeton d'API de serveur ou d'utilisateur 'car j'utilise le mauvais jeton de serveur attendu. –