无法通过api或smtp通过MailGun发送邮件

时间:2017-07-22 14:57:33

标签: mailgun

我已设置新帐户但未验证我的域名。我想在继续验证和添加付款信息之前测试并确认邮件发送。

我尝试使用沙箱方法和api密钥(包括smtp)进行curl。我还尝试使用顶级帐户邮件地址作为收件人使用我的域名。但每次发送命令(curl和smtp)我都得到“Mailgun Magnificent API”响应 - 但没有邮件发送。到目前为止,Mailgun API看起来并不那么壮观......我已多次浏览文档,无法找到我可能做错的事情。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:12)

通过php curl通过api发送电子邮件时面临同样的问题。我通过将API基本网址https://api.mailgun.net/v3/YOUR_DOMAIN_NAME更改为https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages来解决此问题。 这是因为他们的api不仅仅是发送。 希望这会有所帮助。

答案 1 :(得分:0)

对于试图弄清楚Mailgun HTTP 200-OK API响应中“ Mailgun Magnificent API”的含义的其他任何人,如果在https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/some/api/endpoint不是的情况下发布到/some/api/endpoint,则会发生这种情况有效的Mailgun API端点。

有几种方法可以不经意间看到这一点。假设您的发件人域为“ mg.example.com”。所有这些都将以“ Mailgun Magnificent API”响应:

  • 省略API端点:https://api.mailgun.net/v3/mg.example.com(如another响应中所述)
  • 拼写错误的端点:https://api.mailgun.net/v3/mg.example.com/massages(应该是带有 e 的m e ssages)
  • 在域名后加上#https://api.mailgun.net/v3/mg.example.com #/messages(也许您尝试向配置文件中添加# comment,但是配置格式不支持嵌入式注释吗?)
  • 在您的域之后添加一个额外的路径:https://api.mailgun.net/v3/mg.example.com/myapp/messages(也许您正在使用Mailgun客户端库并设置MAILGUN_DOMAIN_NAME='mg.example.com/myapp'-/myapp部分不是属于您的域名)

请注意,如果YOUR_DOMAIN_NAME不是您在Mailgun中注册的有效发送域,则不会看到“ Mailgun Magnificent API”。 (在这种情况下,Mailgun会响应404-Not Found)。

答案 2 :(得分:0)

mailgun指南显示您使用 https://api.mailgun.net/v3/YOUR_DOMAIN 作为YOUR_DOMAIN_NAME,如下面的代码片段所示, 这就是问题 。 / p>

如果您使用的是mailgun-js,则只需将 YOUR_DOMAIN 设置为YOUR_DOMAIN_NAME。

不需要 https://api.mailgun.net/v3 部分

const API_KEY = 'YOUR_API_KEY';
const DOMAIN = 'YOUR_DOMAIN_NAME';
const mailgun = require('mailgun-js')({apiKey: API_KEY, domain: DOMAIN});

const data = {
  from: 'Excited User <me@samples.mailgun.org>',
  to: 'foo@example.com, bar@example.com',
  subject: 'Hello',
  text: 'Testing some Mailgun awesomeness!'
};

mailgun.messages().send(data, (error, body) => {
  console.log(body);
});

答案 3 :(得分:0)

我的问题是没有在 url 中包含我的域名,并试图将所有内容都输入到一行中。严格遵循他们的在线示例。输入反斜杠会将光标移至新行。

$ curl -s --user 'api:key-xxx' \
https://api.mailgun.net/v3/your_domain/messages \
-F from='User <user@sample.mailgun.org>' \
-F to='xxx@gmail.com' \
-F subject='Hello' \
-F text='Testing some mailgun!'

回复

{
  "id": "<xxx.x.xxx@your_domain>",
  "message": "Queued. Thank you."
}