2017-07-29 172 views
0

我试图从React/Node.js应用程序发送电子邮件。目前,我是 尝试使用emailjs模块。如何从Node.js发送电子邮件?

的代码如下:

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" <[email protected]>', 
    to:  email, 
    subject: "Some message subject" 
    }, 
    function(err, message) { 
    console.log(err || message); 
    }); 
} 

当执行这种方法,我得到以下错误:net.Socket is not a constructor

如何从Node.JS应用程序发送电子邮件(使用任何NPM模块,不一定是emailjs)?

更新1(2017年7月30日09:12 MSK): Nodemailer不工作 - 我得到的错误09:11:03 web.1 | Module not found: Can't resolve 'dns' in 'C:\myproject\node_modules\nodemailer\lib\mailer'

Nodemailer error

+0

您需要配置“var server”才能连接到电子邮件服务器。在这里我找到了一些文件:https://github.com/eleith/emailjs –

+0

@JackLuo我已经将邮件服务器参数传递给'emailjs.server'。究竟可能缺少什么? –

+0

尝试使用node-mailer:D – thelonglqd

回答

0

我发现这个问题的原因。最初,发送电子邮件的功能位于React组件内。 this question的答案表示无法从前端发送电子邮件。

因此,我将电子邮件发送例程移动到server.js,现在原来的错误消失了。

1

我用nodemailer发送电子邮件,只是喜欢它是多么简单。

这是网站的模块:https://nodemailer.com/about/

它,您可以按照 的所有例子下面是我从w3school有一个例子。我总是使用它并且像魅力一样工作。要看你用什么样的电子邮件(Gmail时,Hotmail的,前景,...),进行适当的变化,你是好

var nodemailer = require('nodemailer'); 

var transporter = nodemailer.createTransport({ 
    service: 'gmail', 
    auth: { 
    user: '[email protected]', 
    pass: 'yourpassword' 
    } 
}); 

var mailOptions = { 
    from: '[email protected]', 
    to: '[email protected]', 
    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); 
    } 
}); 
+0

谢谢,但Nodemailer不起作用。请参阅更新1. –

+0

请发布您发送的实际请求,只是假或删除所有机密信息。你能检查node-mailer是否安装成功?另外,你是否支持任何代理? – Nina

+0

我无法发送请求,因为Node.js不会启动。 –