发送请求的 Mandrill API 错误

Posted

技术标签:

【中文标题】发送请求的 Mandrill API 错误【英文标题】:Mandrill API error for send request 【发布时间】:2014-11-26 07:17:16 【问题描述】:

我在通过 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 并没有多大好处。否则,有效载荷对我来说似乎很好,而且我在论坛上发现无效发件人可能意味着任何其他类型的问题(不仅仅是可悲的无效发件人)。

【问题讨论】:

【参考方案1】:

我遇到了完全相同的问题

"reject_reason":"invalid-sender"

你可能已经检查过类似的问题Mandrill “reject_reason”: “invalid-sender”

如果有帮助,请尝试。我意识到您的请求中还缺少标头参数

例如用户代理: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));

有帮助吗?

【讨论】:

谢谢!确实有帮助,我不认为问题可能出在 User-agent 标头

以上是关于发送请求的 Mandrill API 错误的主要内容,如果未能解决你的问题,请参考以下文章

Mandrill API 错误地显示“已发送”状态

使用 Mandrill API 检索入站消息

Mandrill 能否将退回的邮件信息发送到发件人电子邮件

山魈 API 错误

Mandrill 电子邮件发送错误:请输入一个数组

发送消息 API 响应中的 Mandrill status = "invalid" 是啥意思