我正在尝试从React / Node.js应用程序发送电子邮件。目前,我是 试图使用emailjs模块。
代码如下:
const emailjs = require('emailjs')
sendEmail(email) {
var server = emailjs.server.connect({
user: "USERNAME",
password:"PASSWORD",
host: "HOST_URL",
ssl: false
});
server.send({
text: 'Message',
from: '"Sender" <mail@provider.com>',
to: email,
subject: "Some message subject"
},
function(err, message) {
console.log(err || message);
});
}
执行此方法时,出现以下错误:net.Socket is not a constructor
。
如何从Node.JS应用程序发送电子邮件(使用任何NPM模块,不一定是emailjs)?
更新1(30.07.2017 09:12 MSK): Nodemailer不起作用 - 我收到错误09:11:03 web.1 | Module not found: Can't resolve 'dns' in 'C:\myproject\node_modules\nodemailer\lib\mailer'
。
答案 0 :(得分:1)
我使用nodemailer发送电子邮件,只是喜欢它是多么简单。
这是该模块的网站:https://nodemailer.com/about/
它包含您可以遵循的所有示例 以下是我从w3school获得的一个例子。我总是使用它并且像魅力一样工作。取决于您使用的是哪种电子邮件(gmail,hotmail,outlook,...),进行适当的更改并且您感觉良好
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'youremail@gmail.com',
pass: 'yourpassword'
}
});
var mailOptions = {
from: 'youremail@gmail.com',
to: 'myfriend@yahoo.com',
subject: 'Sending Email using Node.js',
text: 'That was easy!'
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
答案 1 :(得分:0)
我找到了问题的原因。最初,发送电子邮件的功能位于React组件内。 this question中的答案说,从前端发送电子邮件是不可能的。
所以我将电子邮件发送例程移到server.js
,现在原始错误消失了。
答案 2 :(得分:0)
嗨@DP_和大家.-
我已经成功实现了nodemailer,多亏了你,我有相同的DNS错误并将Send函数移动到server.js,这对我帮助很大。然而,为了使它与Nodemailer一起工作我使用了Hapi.js和xoauth2因为我想通过gmail发送自定义电子邮件,这对我来说非常重要。您需要首先在Google Api上配置Xoauth2并首先将api添加到您的帐户,然后等待一段时间直到您的refreshToken获得批准并将其添加到您的应用中。这就是我的所作所为,希望这有助于某人因为我花了一些时间才能让它发挥作用。