将 Nodemailer 与不同的电子邮件提供商一起使用

עדי*_*קוש 5 node.js express nodemailer

我正在使用 nodemailer 从我的网络应用程序发送电子邮件。我已经使用“service: 'gmail'”将电子邮件从一个 Gmail 帐户发送到另一个 Gmail 帐户。

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

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

exports.send = async options => {
  const mailOptions = {
    from: options.email,
    to: 'adikosh10@gmail.com',
    subject: options.subject,
    html: options.text,
    text: options.text
  };

  const sendMail = promisify(transport.sendMail, transport);
  return sendMail(mailOptions);
};
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢你,阿迪

Avi*_*Avi 2

在这里你可以做以下事情:

首先你可以使用NodeJS Nodemailer Outlooknpm package,通过这个你可以轻松做到这一点。

或者只是尝试通过

对于展望:

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

对于热邮件:

var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "XXXXX@hotmail.com",
        pass: "XXXXX"
    }
});
Run Code Online (Sandbox Code Playgroud)

一次在一起:尝试这样的事情

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)
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!!!谢谢