Node.js 与不同的电子邮件提供商一起使用NodeEmailer

Node.js 与不同的电子邮件提供商一起使用NodeEmailer,node.js,express,nodemailer,Node.js,Express,Nodemailer,我正在使用nodemailer从我的web应用程序发送电子邮件。 我已经用“服务:'gmail'”从一个gmail帐户向另一个gmail帐户发送电子邮件 上面的代码可以工作,但我无法使其适用于outlook帐户。这意味着,如果我向outlook或hotmail帐户发送电子邮件,它将不起作用 此外,我不知道如何注册多个服务,以便我可以向任何电子邮件服务(hotmail、outlook、gmail…)发送电子邮件,而不仅仅是gmail 我怎么做?如果可以的话,请帮忙 谢谢,, Adi在这里,您可以执

我正在使用nodemailer从我的web应用程序发送电子邮件。 我已经用“服务:'gmail'”从一个gmail帐户向另一个gmail帐户发送电子邮件

上面的代码可以工作,但我无法使其适用于outlook帐户。这意味着,如果我向outlook或hotmail帐户发送电子邮件,它将不起作用

此外,我不知道如何注册多个服务,以便我可以向任何电子邮件服务(hotmail、outlook、gmail…)发送电子邮件,而不仅仅是gmail

我怎么做?如果可以的话,请帮忙

谢谢,,
Adi

在这里,您可以执行以下操作:

首先,您可以使用
NodeJS-Nodemailer-Outlook
,这样您就可以轻松地做到这一点

或者只是试着通过

对于Outlook:

var transport = nodemailer.createTransport("SMTP", {
    host: "smtp-mail.outlook.com",
    secureConnection: false, 
    port: 587, 
    auth: {
        user: "XXXXXX@outlook.com",
        pass: "XXXXXX"
    },
    tls: {
        ciphers:'SSLv3'
    }
});
var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "XXXXX@hotmail.com",
        pass: "XXXXX"
    }
});
对于hotmail:

var transport = nodemailer.createTransport("SMTP", {
    host: "smtp-mail.outlook.com",
    secureConnection: false, 
    port: 587, 
    auth: {
        user: "XXXXXX@outlook.com",
        pass: "XXXXXX"
    },
    tls: {
        ciphers:'SSLv3'
    }
});
var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "XXXXX@hotmail.com",
        pass: "XXXXX"
    }
});

一次在一起:试试这样的东西

var nodeoutlook = require('nodejs-nodemailer-outlook')
var nodemailer = require("nodemailer");
const promisify = require("es6-promisify");

nodeoutlook.sendEmail({
    auth: {
        user: "johnexample@organization.com",
        pass: "johnpassword"
    }, from: 'info@myorganization.com',
    to: 'jackexample@organization.com',
    subject: 'Hey you, awesome!',
    html: '<b>This is bold text</b>',
    text: 'This is text version!'
    attachments: [
                   {   // file on disk as an attachment
                        filename: 'text3.txt',
                        path: '/path/to/file.txt' // stream this file
                   }
                ]
});


async function main(){
  let account = await nodemailer.createTestAccount();
  let transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    port: 587,
    secure: false,
    auth: {
      user: account.user, 
      pass: account.pass 
    }
  });

  let mailOptions = {
    from: '"Fred " 
    to: "bar@example.com, baz@example.com", // list of receivers
    subject: "Hello",
    text: "Hello world?", // plain text body
    html: "<b>Hello world?</b>" // html body
  };
  let info = await transporter.sendMail(mailOptions)
}

main().catch(console.error)
var nodeoutlook=require('nodejs-nodeEmailer-outlook'))
var nodeEmailer=require(“nodeEmailer”);
const promisify=要求(“es6 promisify”);
nodeoutlook.sendmail({
认证:{
用户:“johnexample@organization.com",
通行证:“johnpassword”
},发件人:'info@myorganization.com',
致:'jackexample@organization.com',
主题:“嘿,你真棒!”,
html:“这是粗体文本”,
text:'这是文本版本!'
附件:[
{//磁盘上的文件作为附件
文件名:“text3.txt”,
路径:'/path/to/file.txt'//流式传输此文件
}
]
});
异步函数main(){
let account=wait nodemailer.createTestAccount();
让transporter=nodeEmailer.createTransport({
主机:“smtp.ethereal.email”,
港口:587,
安全:错误,
认证:{
用户:account.user,
通行证:account.pass
}
});
让邮件选项={
发件人:“‘弗雷德’
至:bar@example.com, baz@example.com“,//接收者列表
主题:“你好”,
text:“你好,世界?”,//纯文本正文
html:“你好,世界?”//html正文
};
let info=wait transporter.sendMail(邮件选项)
}
main().catch(console.error)
希望对你有帮助!!!
谢谢

这是我用来发送两封电子邮件的代码。它不起作用

const nodemailer = require("nodemailer");
const promisify = require("es6-promisify");

const transport = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: "my gmail",
    pass: "my gmail pass"
  }
});

const transport2 = nodemailer.createTransport({
  service: 'hotmail',
  auth: {
    user: "my hotmail",
    pass: "my hotmail pass"
  }
});

exports.send = async options => {
  const mailOptions = {
    to: 'my gmail',
    subject: options.subject,
    html: options.text,
    text: options.text
  };

  const mailOptions2 = {
    to: 'my hotmail',
    subject: options.subject,
    html: options.text,
    text: options.text
  };

  const sendMail = promisify(transport.sendMail, transport);
  return sendMail(mailOptions);

  const sendMail2 = promisify(transport2.sendMail2, transport2);
  return sendMail2(mailOptions2);
};

你好,非常感谢!使用hotmail服务是可行的,但我想知道如何同时使用gmail和hotmail服务?回答:请查看并安装nodejs NodeEmailer outllokNow当您通过gmail发送最后一封邮件时,您是否能够完成结果