我想从NodeJs发送电子邮件。我在npmjs.org上快速搜索并找到了2个有前途的库:
和
首先,我按照说明安装并运行NodeMailer,但它不起作用。我想从Gmail发送电子邮件,因此,我按照"less secured"的文档中的说明启用了enabled captcha个应用以及Nodemailer。然而,即使我这样做,我也无法使其发挥作用。
另外,我试图切换到我大学的电子邮件,所以我找到了它的SMTP服务器和端口并配置了设置。错误仍然存在,主要是:
(node:825) UnhandledPromiseRejectionWarning: Unhandled promise rejection
(rejection id: 1): Error: connect EAGAIN 134.91.56.35:587 - Local (0.0.0.0:58442)
(node:825) [DEP0018] DeprecationWarning: Unhandled promise rejections are
deprecated. In the future, promise rejections that are not handled will
terminate the Node.js process with a non-zero exit code.
我不确定如何解决它,所以我尝试了下一个客户端,EmailJs。错误有:
{ Error: connection encountered an error (connect EAGAIN 134.91.56.35:587 ...
code: 5,
previous: ...
... smtp: undefied}
我可以清楚地看到写的是smtp未定义,但我已经证实它是相同的。
为了澄清,我在Windows上运行Node上的Bash,但是因为我知道它存在一些问题,所以我也在Raspberry PI 3上运行代码。
谢谢!
答案 0 :(得分:0)
我设法配置它。
根据建议我使用了Gmail-node。要做到这一点,你必须遵循一些步骤:
npm install gmail-node
现在您的程序看起来像这样,您必须根据刚刚下载的文件更改信息:
var gmailNode = require('gmail-node');
var clientSecret = {
installed: {
client_id: "k677725446467-6li25pcqgkcllsoh6f6dijcvse64n9pf.apps.googleusercontent.com",
project_id: "clean-node-129606",
auth_uri: "https://accounts.google.com/o/oauth2/auth",
token_uri: "https://accounts.google.com/o/oauth2/token",
auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs",
client_secret: "kF7DvoA_ZrNfa65GnU2zQBgw7",
redirect_uris: [
"urn:ietf:wg:oauth:2.0:oob",
"http://localhost"
]
}
};
gmailNode.init(clientSecret, './token.json', function(err,data){ ... });
但是,从网站上获取此信息后,我仍有一个未知问题,即Error: No access or refresh token is set.
。
为了解决这个问题,您需要使用" TokenURL"生成网址。通过记录此代码:
console.log(gmailNode.generateUrl(clientSecret));
按照生成的网址复制" TokenURL"那里。
最后,发送一封电子邮件:
gmailNode.generateToken(clientSecret, tokenURL, (err, data) => {
gmailNode.sendWithToken(emailMessage, clientSecret, data, function(err,data) {
console.log(err, data)
})
})
你完成了!
请注意,我们不再需要
init
。