我想通过带有curl post的Sparkpost API发送一封带有附加pdf文件的电子邮件。
插入我使用的pdf(我的测试.pdf是~200KB)
"data":"'$(cat test.pdf} | base64 --wrap=0)'"
但不知何故,这无法显示以下错误:
/usr/bin/curl: Die Argumentliste ist zu lang (original)
/usr/bin/curl: Argument list is too long
编辑:curl 命令
curl -X POST https://api.eu.sparkpost.com/api/v1/transmissions -H 'Authorization: <APIKEY>' -H 'Content-Type: application/json' -d '{
"options":{
"open_tracking":false,
"click_tracking":false,
"inline_css":false
},
"recipients":[
{
"address":{
"email":"user@domain.tld",
"name":"user"
}
}
],
"content":{
"from":{
"name":"sender",
"email":"sender@domain.tld"
},
"reply_to":"replyto@domain.tld",
"subject":"subject",
"text":"textbody",
"attachments":[
{
"name":"attachmentname.pdf",
"type":"application/pdf",
"data":"'$(cat test.pdf | base64 --wrap=0)'"
}
]
}
}'
这是因为您尝试在命令行上传递整个 base64'd 内容。 curl
能够将数据从文件加载到 POST 中,我建议这样做。更多信息可以在手册页中找到,但基本格式如下:
curl -X POST -d @filename.txt https://website.com/path
根据 curl 手册,-F 选项允许您为 base64 对文件进行编码,但将输出限制为 76 个字符。前任:-F '=@localfile;编码器=base64'