我在Mandrill API上通过Jersey客户端发送消息时遇到问题。我使用Jersey客户端如下:
ClientBuilder.newClient()
.register(JacksonJsonProvider.class)
.target(“https://mandrillapp.com/api/1.0/messages/send.json”)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.json(methodEntity));
您可以在下面看到API请求的已记录标题,方法和内容。
POST https://mandrillapp.com/api/1.0/messages/send.json
Accept: application/json
Content-Type: application/json
{"message":{"subject":"Hello World!","text":"Really, Im just saying hi from Mandrill!","to":[{"email":"marcel@xxxx.com","name":"Marcel cccc","type":"to"}],"headers":{},"tags":["test"],"from_email":"info@xxxxx.com","auto_text":true,"preserve_recipients":false},"async":false,"key":"EWIBVEIOVBVOIEBWIOVEB"}
为响应此请求,我一直收到以下消息:
[{"email":"marcel@XXXX.com","status":"rejected","_id":"0ea5e40fc2f3413ba85b765acdc5f17a","reject_reason":"invalid-sender"}]
我不知道问题是什么,从我发现的一些帖子中我必须使用UTF-8来编码我的消息和标题。但是将编码设置为UTF-8并没有太大作用。否则有效载荷对我来说似乎很好,而且我在论坛上发现无效的发件人可能意味着任何其他类型的问题(不仅仅是无效的发件人,这很难过)。
答案 0 :(得分:3)
我和
有完全相同的问题" reject_reason":"无效发件人"
您可能已经检查过类似问题Mandrill “reject_reason”: “invalid-sender”
如果它有帮助,请尝试一下。我意识到您在请求中也缺少标题参数
e.g。 User-Agent:Mandrill-myclient / 1.0
请尝试将此参数添加到Jersey客户端设置中,如下所示:
ClientBuilder.newClient()
.register(JacksonJsonProvider.class)
.target(“https://mandrillapp.com/api/1.0/messages/send.json”)
.request(MediaType.APPLICATION_JSON_TYPE)
.header("User-Agent", "Mandrill-myclient/1.0")
.post(Entity.json(methodEntity));
有帮助吗?