在Node.js中发送电子邮件?
我最近开始编程我的第一个node.js。 但是,我发现我无法创build一个直接发送给我的电子邮件的联系人表单,因为我找不到能够发送电子邮件的节点的任何模块。
有谁知道一个node.js电子邮件库或示例联系表单脚本?
node-email-templates是一个更好的select: https : //github.com/niftylettuce/node-email-templates
它也支持Windows
Nodemailer基本上是一个模块,使您能够在Node.js编程时轻松发送电子邮件。 在http://www.nodemailer.com/上有很多关于如何使用Nodemailer模块的例子。; 有关如何安装和使用Nodemailer的基本function的完整说明包含在此链接中。
我个人遇到了使用npm安装Nodemailer的麻烦,所以我只是下载了源代码。 有对npm安装和下载源的说明。
这是一个非常简单的模块使用,我会推荐给任何想用Node.js发送邮件的人。 祝你好运!
退房emailjs
浪费了大量的时间在尝试使大型附件的节点工作,从那以后发现了emailjs和开心。
它支持使用正常的File对象发送文件,而不是像nodemailer所要求的那样使用巨大的缓冲区。 意思是你可以把它链接到fe,强大的将附件从html表单传递给邮件程序。 它也支持排队
总而言之,不知道为什么nodejitsu pplselectnodemailer作为其基础的版本,emailjs更为先进。
完整的代码发送电子邮件使用nodemailer模块
var mailer = require("nodemailer"); // Use Smtp Protocol to send Email var smtpTransport = mailer.createTransport("SMTP",{ service: "Gmail", auth: { user: "gmail_id@gmail.com", pass: "gmail_password" } }); var mail = { from: "Yashwant Chavan <from@gmail.com>", to: "to@gmail.com", subject: "Send Email Using Node.js", text: "Node.js New world for me", html: "<b>Node.js New world for me</b>" } smtpTransport.sendMail(mail, function(error, response){ if(error){ console.log(error); }else{ console.log("Message sent: " + response.message); } smtpTransport.close(); });
@ JimBastard接受的答案似乎是过时的,我看了一下,并且这个邮件库在7个月以上没有被触及,列出了一些错误,并且不再以npm注册。
nodemailer看起来像最好的select,但在这个线程的其他答案中提供的url都是404'。
nodemailer声称支持简单的插件到Gmail,Hotmail等,也有非常漂亮的文档。
你总是可以使用AlphaMail ( 披露:我是其背后的开发者之一 )。
只需安装NPM :
npm install alphamail
注册一个AlphaMail帐户。 获取令牌,然后您可以开始使用AlphaMail服务发送。
var alphamail = require('alphamail'); var emailService = new alphamail.EmailService() .setServiceUrl('http://api.amail.io/v1/') .setApiToken('YOUR-ACCOUNT-API-TOKEN-HERE'); var person = { id: 1234, userName: "jdoe75", name: { first: "John", last: "Doe" }, dateOfBirth: 1975 }; emailService.queue(new alphamail.EmailMessagePayload() .setProjectId(12345) // ID of your AlphaMail project (determines template, options, etc) .setSender(new alphamail.EmailContact("Sender Company Name", "from@example.com")) .setReceiver(new alphamail.EmailContact("John Doe", "to@example.org")) .setBodyObject(person) // Any serializable object );
在AlphaMail GUI( 仪表板 )中,您可以使用发送的数据编辑模板:
<html> <body> <b>Name:</b> <# payload.name.last " " payload.name.first #><br> <b>Date of Birth:</b> <# payload.dateOfBirth #><br> <# if (payload.id != null) { #> <a href="http://company.com/sign-up">Sign Up Free!</a> <# } else { #> <a href="http://company.com/login?username=<# urlencode(payload.userName) #>">Sign In</a> <# } #> </body> </html>
这些模板是用Comlang编写的,它是专门为电子邮件devise的简单模板语言。
成熟,使用简单,并有很多function,如果简单是不够的:Nodemailer的: https : //github.com/andris9/nodemailer (注意正确的url!)
Nodemailer模块是在node.js中发送电子邮件的最简单的方法。
试试下面的示例代码: http : //www.tutorialindustry.com/nodejs-mail-tutorial-using-nodemailer-module
附加信息: http : //www.nodemailer.com/
npm有几个软件包,但是还没有达到1.0。 从npm list mail
select最佳select:
email@0.2.2 mail@0.1.1 mailer@0.3.0
你一定要使用https://github.com/niftylettuce/node-email-templates,因为它支持nodemailer / postmarkapp,并且内置了漂亮的asynchronous邮件模板支持。
广告系列是在Node中发送电子邮件的全面解决scheme,它附带了一个非常简单的API。
你像这样实例化。
var client = require('campaign')({ from: 'you@gmail.com' });
发送电子邮件,您可以使用Mandrill ,这是免费的,真棒。 只需设置您的API密钥,如下所示:
process.env.MANDRILL_APIKEY = '<your api key>';
(如果您想使用其他提供商发送电子邮件,请查看文档)
然后,当你想发送电子邮件,你可以这样做:
client.sendString('<p>{{something}}</p>', { to: ['someone@gmail.com', 'someone.else@gmail.com'], subject: 'Some Subject', preview': 'The first line', something: 'this is what replaces that thing in the template' }, done);
GitHub回购有相当广泛的文档 。