我最近开始编写我的第一个node.js。然而,我发现我无法创建一个联系我的形式,直接发送到我的电子邮件,因为我找不到任何模块从节点,能够发送电子邮件。

有人知道node.js的电子邮件库或示例联系表单脚本吗?


当前回答

NPM有一些包,但还没有一个达到1.0。来自npm列表邮件的最佳选择:

email@0.2.2
mail@0.1.1
mailer@0.3.0

其他回答

你肯定想使用https://github.com/niftylettuce/node-email-templates,因为它支持nodemailer/postmarkapp,并内置了漂亮的异步电子邮件模板支持。

Node-email-templates是一个更好的选择: https://github.com/niftylettuce/node-email-templates

它也支持Windows

查看emailjs

在浪费了大量时间试图使nodemailer工作与大附件,发现emailjs和快乐的从那时起。

它支持通过使用普通的File对象来发送文件,而不是像nodemailer那样需要巨大的buffer。这意味着您可以将其链接到,例如,将附件从html表单传递到邮件发送器。它还支持排队..

总而言之,不知道nodejitsu ppl为什么选择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();
});

campaign是一个在Node中发送电子邮件的综合解决方案,它带有一个非常简单的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回购有相当广泛的文档。