使用curl调用Mandrill发送邮件接口时,to字段已是数组却仍报需为数组的验证错误
Mandrill邮件发送接口to字段校验报错成因
- 请求头编码格式不匹配
你使用-d参数传递请求体时,curl会默认将Content-Type设置为application/x-www-form-urlencoded,而非接口要求的application/json。该编码模式下,接口无法将你传入的类JSON字符串解析为嵌套的结构化数据,根本识别不到message对象下to字段的实际值,因此抛出“to字段需要为数组”的校验错误。你看到的报错和你实际写入的数组格式矛盾,本质是请求体没有被正确解析。 - to字段结构不符合接口规范
即便修正请求头的Content-Type配置,你当前的to字段写法也无法通过校验:Mandrill接口要求to数组的每个元素必须是包含email属性的对象,用来承载收件人邮箱、收件类型等信息,不支持直接将纯邮箱字符串作为数组元素传入。
修正后的可正常运行的命令参考:
curl -X POST \ https://mandrillapp.com/api/1.0/messages/send \ -H "Content-Type: application/json" \ -d '{ "key": "你的实际API密钥", "message": { "html": "hello, world!", "subject": "hello, world!", "from_email": "neubert@neubert.com", "to": [ { "email": "neubert@neubert.com", "type": "to" } ] } }'
内容的提问来源于stack exchange,提问作者neubert
相关产品推荐
相关产品推荐

