标签:javascript jquery email mandrill
我已经按照this指南了解如何使用Mandrill使用JavaScript发送电子邮件,但是在我的控制台中收到此错误:Cross-Origin Request Blocked:同源策略禁止在https://mandrillapp.com/api上读取远程资源/1.0/messages/send.json.这可以通过将资源移动到同一域或启用CORS来解决.
这是我的代码:
$('#submitEmail').click(function() {
$.ajax({
type: "POST",
url: "https://mandrillapp.com/api/1.0/messages/send.json",
data: {
'key': 'my_api_key',
'message': {
'from_email': 'test@hotmail.com',
'to': [{
'email': 'test@gmail.com',
'name': 'RECIPIENT NAME (OPTIONAL)',
'type': 'to'
}],
'autotext': 'true',
'subject': 'test',
'html': 'test'
}
}
}).done(function(response) {
console.log(response);
});
});
我究竟做错了什么?
解决方法:
您应该在< script>中包含Mandrill API,而不是发出POST请求.您的< head>中的标记:
<script type="text/javascript" src="path_to_locally_stored_copy_of_mandrill_API"></script>
然后,您可以在JS文件中访问它:
var m = new mandrill.Mandrill('your_api_key'); // This will be public
function sendTheMail(){
m.messages.send({
"message": {
"from_email": "your_email_address",
"from_name": "your_name",
"to":[{"email": "someone's_email_address", "name": "someone's_name"}], // Array of recipients
"subject": "optional_subject_line",
"text": "Text to be sent in the body" // Alternatively, use the "html" key to send HTML emails rather than plaintext
}
});
}
但请注意,这会将您的API暴露给公众,因为可以使用开发工具从客户端访问它.这可以打开您的网络钓鱼漏洞,有人可能会滥用您的密钥.
我也看看full Mandrill docs发送.
标签:javascript,jquery,email,mandrill 来源: https://codeday.me/bug/20191006/1858108.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。