我已设置新帐户但未验证我的域名。我想在继续验证和添加付款信息之前测试并确认邮件发送。
我尝试使用沙箱方法和api密钥(包括smtp)进行curl。我还尝试使用顶级帐户邮件地址作为收件人使用我的域名。但每次发送命令(curl和smtp)我都得到“Mailgun Magnificent API”响应 - 但没有邮件发送。到目前为止,Mailgun API看起来并不那么壮观......我已多次浏览文档,无法找到我可能做错的事情。
非常感谢任何帮助。
答案 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”响应:
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."
}