从浏览器mailgun发送邮件
我想使用mailgun
从浏览器发送简单的电子邮件。我从postman
发送工作电子邮件和下载代码的功能我设法让JavaScript代码是:从浏览器mailgun发送邮件
var data = new FormData();
data.append("from", "Mailgun Sandbox <[email protected]>");
data.append("to", "Example <[email protected]>");
data.append("subject", "Hello from Mailgun");
data.append("text", "Congratulations Example, you just sent an email with Mailgun! You are truly awesome!");
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://api:[email protected]/v3/sandbox1985406854ad9e8b8dfe094531fa41e8.mailgun.org/messages");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.setRequestHeader("postman-token", "0a3ad9d5-22b5-6308-d6e7-59f66360fa26");
xhr.send(data);
但是,当我从我的浏览器(firefox
)执行该代码它什么都不做。我究竟做错了什么?
改变从
https://api:[email protected]/v3/sandbox1985406854ad9e8b8dfe094531fa41e8.mailgun.org/messages
网址
https://api.mailgun.net/v3/sandbox1985406854ad9e8b8dfe094531fa41e8.mailgun.org/messages
似乎执行,是api:key-xx
部分无效?
不要这样做。这不适合使用Mailgun API。
将此Javascript发送给浏览器,即表示您允许他们访问您的Mailgun API密钥。此API密钥不受任何限制 - 恶意客户可能会滥用密钥,将无限数量的消息发送给他们想要的任何收件人,这可能会浪费大量帐单和/或阻止您的帐户被垃圾邮件阻止。
在服务器端使用Mailgun API。如果您需要通过Javascript发送消息,请在您的应用程序中创建一个端点,并在适当的位置调用Mailgun API。
是的,我知道这很糟糕,但在这一点上,我更加好奇它为什么不工作而不是工作。我已经创建了一个已经发送邮件的后端服务器。 – hupakeetje
我很好奇如何让它在浏览器中工作。我的实现将它作为Chrome扩展。此时,唯一可以访问API密钥的人是将提供自己的密钥的最终用户。 – jkupczak
除非你指定了协议和端口,否则你不能在URL中冒号,所以'api:key'是无效的。浏览器试图通过端口'key-75a05cfds8c66bd1y4c3e854305438e5 @ api.mailgun.net'(它不是一个有效的TCP端口)连接到域'api',并要求提供页面'/v3/sandbox1985406854ad9e8b8dfe094531fa41e8.mailgun.org/消息“使用”https“协议。 – jdgregson
你有没有想过这个?我期待和你一样做同样的事情。 – jkupczak