我最近开始编写我的第一个Node.js程序。但是,我发现我无法创建一个能够直接发送邮件到我的电子邮件的联系表单,因为我找不到任何可以发送电子邮件的Node模块。
是否有人知道一个Node.js电子邮件库或示例联系表单脚本?
Nodemailer是一个模块,可让您在Node.js编程时轻松发送电子邮件。在http://www.nodemailer.com/上有一些很棒的使用Nodemailer模块的示例。该链接中包含有关如何安装和使用Nodemailer基本功能的完整说明。
我个人在使用npm安装Nodemailer时遇到了麻烦,所以我只是下载了源代码。该链接中包含了npm安装和下载源代码的说明。
这是一个非常简单易用的模块,我推荐任何想要使用Node.js发送电子邮件的人使用它。祝好运!
node-email-templates
。我想将其作为一个初始化后稍后用于发送的对象来使用。但是无法使其正常工作。我放弃了。 - jcollum查看emailjs
在花费很多时间尝试使nodemailer处理大型附件后,发现了emailjs并从此欣喜若狂。
它支持使用普通的File对象发送文件,而不像nodemailer需要使用巨大的缓冲区。这意味着您可以将它链接到例如formidable,以将附件从html表单传递给邮件程序。它还支持排队..
总的来说,不知道为什么nodejitsu选择基于nodemailer,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();
});
node-email-templates
,我发现使用Nodemailer
要简单得多。或许是因为我只是尝试发送基础的纯文本/基础的HTML电子邮件,但我觉得node-email-templates
需要更多的设置,而Nodemailer
在两分钟内即可运行。 - JVGTypeError: Cannot create property 'mailer' on string 'SMTP' at new Mail
。我已经查看了像这个和这个页面的帖子,但仍然不知所措。 - user1063287看起来@JimBastard的回答已经过时了,我查了一下那个邮件库已经有超过7个月没有更新了,有几个bug列表,并且不再在npm注册。
nodemailer 看起来肯定是最好的选择,但是其他答案中提供的url都是404错误。
nodemailer声称支持gmail、hotmail等的易于插件化和美观的文档。
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
);
<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编写的,它是一种专门为电子邮件设计的简单模板语言。
npm有一些软件包,但是没有一个达到了1.0版本。从npm list mail
中最好的选择:
email@0.2.2
mail@0.1.1
mailer@0.3.0