是否有一个与PHP的mail()函数等效的nodejs

Cas*_*ynn 5 php email node.js

我来自PHP世界,我习惯使用mail()来发送快速诊断电子邮件.在NodeJS的标准库中是否有一个模块或方法,大致相当于此?

Igo*_*rev 9

当然:

const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({sendmail: true}, {
  from: 'no-reply@your-domain.com',
  to: 'your@mail.com',
  subject: 'test',
});
transporter.sendMail({text: 'hello'});
Run Code Online (Sandbox Code Playgroud)

另请参阅在docker容器中配置sendmail


hun*_*tis 6

Nodemailer是一种流行,稳定,灵活的解决方案:

完全使用看起来像这样(顶部位只是设置 - 所以你只需要每个应用程序执行一次):

var nodemailer = require("nodemailer");

// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "gmail.user@gmail.com",
        pass: "userpass"
    }
});

// setup e-mail data with unicode symbols
var mailOptions = {
    from: "Fred Foo ? <foo@blurdybloop.com>", // sender address
    to: "bar@blurdybloop.com, baz@blurdybloop.com", // list of receivers
    subject: "Hello ?", // Subject line
    text: "Hello world ?", // plaintext body
    html: "<b>Hello world ?</b>" // html body
}

// send mail with defined transport object
smtpTransport.sendMail(mailOptions, function(error, response){
    if(error){
        console.log(error);
    }else{
        console.log("Message sent: " + response.message);
    }

    // if you don't want to use this transport object anymore, uncomment following line
    //smtpTransport.close(); // shut down the connection pool, no more messages
});
Run Code Online (Sandbox Code Playgroud)

  • 迟到了这里的派对.使用nodemailer,您需要一个身份验证.PHP mail()方法你不需要auth对吗?它只会发送到您在脚本中指定的电子邮件.至少这是我的经历.在节点中有没有这样的东西,不需要auth发送到gmail ...我可以从一个php脚本发送一封电子邮件到我的gmail没有在auth中指定密码,但在nodemailer中我必须在那里有auth (8认同)
  • Nodemailer 也可以。我已编辑此答案以包含直接链接。https://nodemailer.com/transsports/sendmail/ (2认同)