所以,我试图使用一个名为Postmark的服务发送格式化的HTML邮件。他们有一些API文档here,他们就如何使用卷曲这个例子:如何使用CURL转义部分JSON POST请求中的字符?
$: 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: '
Hello dear Postmark user.'}"所以,这一切都很好,当我用我自己的身份标记的工作就好了。问题是当我添加自己的HtmlBody。如果我发送一条简单的消息,它就可以正常工作。只要我添加某些特殊字符,就会中断。举例来说,如果我做这样的事情:
-d "{From: '[email protected]', To: '[email protected]', Subject: 'Postmark test', HtmlBody: '
Hello dear Postmark user.'}"它打破,因为!的。我怎样才能解决这个问题?
UPDATE:作为sourcejedi指出我从shell(bash)的运行这一点,所以!问题,现在对我来说很有意义。我将JSON字符串移动到一个名为email.json的单独文件中,并使用-d @email.json加载该文件。这工作了一个简单的电子邮件,但我仍然得到以下错误,当我尝试加载完整的HTML:
{"ErrorCode":402,"Message":"Received invalid JSON input."}
我相信这是与其他一些特殊的字符做。我在使用--data-urlencode @email.json时遇到同样的错误。