そこで、Postmark というサービスを使用して、書式設定された HTML メールを送信しようとしています。彼らはここにいくつかの API ドキュメントを持っており、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: 'sender@example.com', To: 'receiver@example.com', Subject: 'Postmark test', HtmlBody: '<html><body><strong>Hello</strong> dear Postmark user.</body></html>'}"
それで、それはすべて良いことであり、私が自分のトークンを使用するときはうまく機能します。問題は、独自の HtmlBody を追加するときです。簡単なメッセージを送信すると、問題なく動作します。特定の特殊文字を追加するとすぐに壊れます。たとえば、次のようなことをするとします。
-d "{From: 'sender@example.com', To: 'receiver@example.com', Subject: 'Postmark test', HtmlBody: '<!DOCTYPE html><html><body><strong>Hello</strong> dear Postmark user.</body></html>'}"
のせいで壊れ!
ます。どうすればこれを修正できますか?
更新: sourcejediが指摘したように、私はこれをシェル (bash) から実行しているため、この!
問題は今では理解できます。JSON 文字列を email.json という別のファイルに移動し、-d @email.json
. を含む単純な電子メールでは機能しました<!DOCTYPE>
が、完全な HTML を読み込もうとすると、まだ次のエラーが表示されます。
{"ErrorCode":402,"Message":"Received invalid JSON input."}
これは他の特殊文字と関係があると思います。を使用すると同じエラーが発生します--data-urlencode @email.json
。