我可以在浏览器中使用nodemailer吗?

我创build了一个简单的webpack应用程序(使用webpack )与联系表单,当用户点击提交我想要生成并发送电子邮件。 要做到这一点,我一直试图使用nodemailer像这样:

 import nodemailer from 'nodemailer'; //... sendEmail () { const emailInfo = { to: 'foo@bar.com', from: 'bar@foo.com', subject: 'Message from bar', text: 'Hello world!' }; const connectionInfo = { host: '...', port: 123, secure: true, auth: { user: 'foo@bar.com', pass: 'foo123' } }; const transporter = nodemailer.createTransport('SMTP', connectionInfo); transporter.sendMail(emailInfo, function(error){ if(error){ console.log('error'); } console.log('sent'); }); } 

…但是我已经得到了很多关于nodemailer导入的错误。

 ERROR in ./~/nodemailer/package.json Module parse failed: /Users/myUser/website/node_modules/nodemailer/package.json Unexpected token (2:8) You may need an appropriate loader to handle this file type. SyntaxError: Unexpected token (2:8) ERROR in ./~/nodemailer/lib/http-proxy.js Module not found: Error: Cannot resolve module 'net' in /Users/myUser/website/node_modules/nodemailer/lib @ ./~/nodemailer/lib/http-proxy.js 7:10-24 ERROR in ./~/nodemailer/lib/http-proxy.js Module not found: Error: Cannot resolve module 'tls' in /Users/myUser/website/node_modules/nodemailer/lib @ ./~/nodemailer/lib/http-proxy.js 8:10-24 ERROR in ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js Module not found: Error: Cannot resolve module 'dns' in /Users/myUser/website/node_modules/nodemailer/node_modules/nodemailer-direct-transport/lib @ ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js 5:10-24 ERROR in ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js Module not found: Error: Cannot resolve module 'net' in /Users/myUser/website/node_modules/nodemailer/node_modules/nodemailer-direct-transport/lib @ ./~/nodemailer/~/nodemailer-direct-transport/lib/direct-transport.js 6:10-24 ERROR in ./~/nodemailer/~/nodemailer-direct-transport/package.json Module parse failed: /Users/myUser/website/node_modules/nodemailer/node_modules/nodemailer-direct-transport/package.json Unexpected token (2:8) You may need an appropriate loader to handle this file type. SyntaxError: Unexpected token (2:8) 

我在这里错过了什么,或者是nodemailer没有devise用于浏览器? 如果是这样的话,我还有另一个select呢?

node.js用于服务器端的JavaScript,允许你做许多事情,在浏览器中无法完成。

发送电子邮件不是在浏览器提供的沙盒中可以完成的,除了mailto链接的有限function之外,基本上可以popup用户的电子邮件客户端并填充一些链接。

您需要实现服务器端代码来执行此操作,这由客户端的一些操作(可能是node.js和nodemailer)触发。