调用 mandrill api 时连接拒绝 curl 错误

Posted

技术标签:

【中文标题】调用 mandrill api 时连接拒绝 curl 错误【英文标题】:Connection refused error in curl while calling mandrill api 【发布时间】:2014-03-13 20:57:49 【问题描述】:

要使用 mandrill api 发送交易电子邮件,我正在使用这个 mandrill api -

https://mandrillapp.com/api/1.0/messages/send.json

我正在尝试将这个 JSON 数据(有效负载)发布到它 -


'key' : 'MyActualKey',
'message': 
    'html': '<p>Example HTML content</p>',
    'text': 'Example text content',
    'subject': 'example subject',
    'from_email': 'from@example.com',
    'from_name': 'Test',
    'to': [
        
            'email': 'to@example.com',
            'name': 'Hussain',
            'type': 'to'
        
    ],
    'headers': 
        'Reply-To': 'reply@example.com'
    ,
    'merge': True,
    'tags': [
        'Mandrill Test'
    ]
 ,
'ip_pool': 'Main Pool'

所以当我执行这个 curl 命令时 -

curl -X POST -H "Content-Type: application/json" --data @TestMandrillPayload.json https://mandrillapp.com/api/1.0/messages/send.json -v

我收到此错误 -

* About to connect() to proxy 127.0.0.1 port 8000 (#0)
*   Trying 127.0.0.1... Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

但是当我在这里使用相同的 json 时 -

https://mandrillapp.com/api/docs/messages.JSON.html#method-send

邮件发送成功。

我尝试在互联网上搜索此问题的原因,每个人都认为我的 DNS 或防火墙有问题。它出什么问题了?

【问题讨论】:

【参考方案1】:

如果是 DNS 问题,则 ping 域 mandrillapp.com 并获取 IP 并在 curl 上使用它。

如果您有不同的 DNS 服务器 IP 地址,那么您也可以使用 curl 命令指定它。

--dns-servers IP

另外,在 curl 命令中使用-k 命令行参数。

【讨论】:

实际上以某种方式将HTTP_PROXY 变量设置为http://127.0.0.1:8000/。我取消了那个 var,它现在可以工作了。

以上是关于调用 mandrill api 时连接拒绝 curl 错误的主要内容,如果未能解决你的问题,请参考以下文章

mandril 拒绝原因:未签名

mandril 拒绝原因:未签名

在对 mandril 的 api 调用中使用 laravel-view

使用 Mandrill 发送邮件。异步不起作用

使用 Mandrill API 检索入站消息

java.lang.RuntimeException:从本地使用 Spring Boot 容器 API 时连接被拒绝