最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用nodemailer与不同的电子邮件提供商

IT培训 admin 4浏览 0评论

使用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: '[email protected]',
    subject: options.subject,
    html: options.text,
    text: options.text
  };

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

上面的代码有效,但我不能使它适用于Outlook帐户。如果我通过电子邮件发送到Outlook或Hotmail帐户,这意味着它不起作用。

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

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

阿丽,谢谢你

回答如下:

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

首先你可以使用NodeJS Nodemailer Outlooknpm package,你可以很容易地做到这一点。

或者只是试着去做

对于Outlook:

var transport = nodemailer.createTransport("SMTP", {
    host: "smtp-mail.outlook",
    secureConnection: false, 
    port: 587, 
    auth: {
        user: "[email protected]",
        pass: "XXXXXX"
    },
    tls: {
        ciphers:'SSLv3'
    }
});

对于hotmail:

var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "[email protected]",
        pass: "XXXXX"
    }
});

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

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

nodeoutlook.sendEmail({
    auth: {
        user: "[email protected]",
        pass: "johnpassword"
    }, from: '[email protected]',
    to: '[email protected]',
    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: "[email protected], [email protected]", // 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)

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

使用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: '[email protected]',
    subject: options.subject,
    html: options.text,
    text: options.text
  };

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

上面的代码有效,但我不能使它适用于Outlook帐户。如果我通过电子邮件发送到Outlook或Hotmail帐户,这意味着它不起作用。

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

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

阿丽,谢谢你

回答如下:

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

首先你可以使用NodeJS Nodemailer Outlooknpm package,你可以很容易地做到这一点。

或者只是试着去做

对于Outlook:

var transport = nodemailer.createTransport("SMTP", {
    host: "smtp-mail.outlook",
    secureConnection: false, 
    port: 587, 
    auth: {
        user: "[email protected]",
        pass: "XXXXXX"
    },
    tls: {
        ciphers:'SSLv3'
    }
});

对于hotmail:

var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "[email protected]",
        pass: "XXXXX"
    }
});

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

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

nodeoutlook.sendEmail({
    auth: {
        user: "[email protected]",
        pass: "johnpassword"
    }, from: '[email protected]',
    to: '[email protected]',
    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: "[email protected], [email protected]", // 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)

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

发布评论

评论列表 (0)

  1. 暂无评论