将邮件请求发送到mailgun api

时间:2017-01-18 19:27:54

标签: ruby-on-rails ruby api mailgun rest-client

我正在尝试发送邮件请求,这是我的代码:

 url = "https://api.mailgun.net/v3/MYDOMAIN/messages"

    params = {
        :from => "Excited User <manuelbruno05@gmail.com>",
        :to => "bruno.brito.ln@gmail.com, YOU@YOUR_DOMAIN_NAME",
        :subject => "Hello",
        :text => "Testing some Mailgun awesomness!"
    }

    headers = {
        :api => "MY-API-KEY"
    }

    RestClient.post url, params, headers

当我尝试发出请求时,响应为401 Unauthorized。使用 HttpRequester 发送请求工作正常(响应200)所以我的猜测是我在Rails中设置标头错误。我的问题:如何修复此代码?

3 个答案:

答案 0 :(得分:0)

我刚刚经历了这一点,所以我将解决方案放在这里。您需要在Mailgun网站上的IP白名单中添加0.0.0.0/0。在API密钥列表的正下方。

答案 1 :(得分:0)

请确保您使用的是从仪表板获得的实际API密钥,而不是他们通过电子邮件发送给您的“密钥ID”。两者不一样!

答案 2 :(得分:0)

我收到了 401 Forbidden,因为它使用的是美国服务器,而我在欧盟。我不得不在 MailGun example Go 脚本中添加一行

// Create an instance of the Mailgun Client 
mg:= mailgun.NewMailgun(yourDomain, privateAPIKey)

/// THIS is the line I had to add to get it to use the EU server.
mg.SetAPIBase(mailgun.APIBaseEU)