01月13, 2020

node-mail第二篇

在17年的时候,有写过一篇node-mail笔记

在现在看来,还是太年轻。年轻在毕竟没啥踩坑经验。

这次就来一个公司级别的node-mail发送吧。

毕竟公司邮件QQ163还是有很大的区别的。

需求是:在npm publish之后,要发邮箱给相应的service owner(业务负责人)。

根据node-mail笔记,我们可以知道,mailOptions配置相当容易,难的是transporter

这里面要做几个事:

  • 和运维申请公共邮箱
  • 确认是走的 pop3 还是 smtp
  • 测试能不能正常走通

OK,我先发第一版代码:

'use strict';
const nodemailer = require('nodemailer');

// Generate test SMTP service account from ethereal.email
// Only needed if you don't have a real mail account for testing
nodemailer.createTestAccount((err, account) => {

  // create reusable transporter object using the default SMTP transport
  let transporter = nodemailer.createTransport({
    host: '主机',
    port: 25,
    secure: false, // true for 465, false for other ports
    auth: {
      user: '运维给的/自己申请的邮箱地址', // generated ethereal user
      pass: '运维给的/自己申请的邮箱密码'  // generated ethereal password
    }
  });

  // setup email data with unicode symbols
  let mailOptions = {
    from: '"测试一下" <运维给的/自己申请的邮箱地址>', // sender address
    to: '接收者邮箱', // list of receivers
    subject: 'just for test', // Subject line
    text: 'hahaha', // plain text body
  };

  // send mail with defined transport object
  transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
      return console.log(error);
    }
    console.log('Message sent: %s', info.messageId);
    // Preview only available when sending through an Ethereal account
    console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));

    // Message sent: <[email protected]>
    // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
  });
});

这边大家只需要关注transporter那一块的代码即可。

然而:

alt

一开始我以为是端口号的问题:

alt

可是并不是。。。最后在statckoverflow的帮助下,终于解决:

Nodemailer - MS Exchaneg server - Error unable to verify the first certificate

alt

本文链接:www.my-fe.pub/post/node-mail-2.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。