【问题标题】:Using nodemailer with different email providers将 nodemailer 与不同的电子邮件提供商一起使用
【发布时间】:2019-02-16 16:04:29
【问题描述】:

我正在使用 nodemailer 从我的网络应用程序发送电子邮件。 我已经使用“服务:'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);
};

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

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

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

谢谢你, 阿迪

【问题讨论】:

    标签: node.js express nodemailer


    【解决方案1】:

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

    首先你可以使用NodeJS Nodemailer Outlooknpm package,这样你就可以轻松搞定了。

    或者只是尝试通过

    对于 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'
        }
    });
    

    对于 hotmail:

    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)
    

    希望对你有帮助!!! 谢谢

    【讨论】:

    • 您好,非常感谢!使用 hotmail 服务可以,但我怎样才能同时使用 gmail 和 hotmail 服务?
    • 回答已编辑,请查看并安装 nodejs nodemailer outllok
    • 现在你能完成结果吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多