【发布时间】:2021-09-20 05:30:18
【问题描述】:
我正在尝试为我的 chrome 扩展程序创建电子邮件通知,并正在使用 https://smtpjs.com/ 将我的电子邮件发送给用户。对于网站来说这真的很简单,但是 chrome 不允许添加其他脚本。我尝试将其制作为自己的文件并将其包含在清单中,一些内容安全性的东西要添加到我从堆栈溢出中发现的清单中,但这一切都导致了错误。现在,我的弹出 js 中有 smtp 的脚本,但电子邮件仍然没有发送。救命!
电子邮件部分的代码:
var Email = { send: function (a) { return new Promise(function (n, e) { a.nocache = Math.floor(1e6 * Math.random() + 1), a.Action = "Send"; var t = JSON.stringify(a); Email.ajaxPost("https://smtpjs.com/v3/smtpjs.aspx?", t, function (e) { n(e) }) }) }, ajaxPost: function (e, n, t) { var a = Email.createCORSRequest("POST", e); a.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), a.onload = function () { var e = a.responseText; null != t && t(e) }, a.send(n) }, ajax: function (e, n) { var t = Email.createCORSRequest("GET", e); t.onload = function () { var e = t.responseText; null != n && n(e) }, t.send() }, createCORSRequest: function (e, n) { var t = new XMLHttpRequest; return "withCredentials" in t ? t.open(e, n, !0) : "undefined" != typeof XDomainRequest ? (t = new XDomainRequest).open(e, n) : t = null, t } };
Email.send({
SecureToken : "token",
To : "emailimsendingto@gmail.com",
From : "myemail@gmail.com",
Subject : "testttt",
Body : "testtttttttt"
}).then(
console.log("sent")
);
我在控制台中收到“已发送”消息,但没有电子邮件。一个问题可能是我收到的一封电子邮件,内容是 gmail 阻止了一个外部站点,即 smtp。我以为我通过说是我来解决它,但是我想。我不知道如何检查
【问题讨论】:
-
警告!这样你的令牌不会很安全
-
听起来此服务将安全令牌锁定到某个域 - 而不是扩展名
-
这是唯一比输入我的实际密码和用户名更安全的方法。对于你的第二条评论,你能解释更多吗?不太确定我是否理解
-
JS 库可以被扩展使用,Chrome 不允许这样做。您可能在您的代码/html 中犯了一个意外错误。请注意,弹出窗口是一个单独的窗口,因此它有自己独立的开发工具:在弹出窗口内右键单击并在菜单中选择“检查”。
-
@Huddy 我相信服务会将其锁定到某个来源,而 chrome 扩展没有来源。
标签: javascript google-chrome email google-chrome-extension smtp