Node.js实战:掌握邮件和钉钉通知的发送技巧

一、使用Node.js发送邮件

1.1 选择邮件发送库

常用的Node.js邮件库是nodemailer,它简单易用,支持多种邮件服务。

1.2 安装nodemailer

bash 复制代码
npm install nodemailer

1.3 发送基本邮件示例

javascript 复制代码
const nodemailer = require('nodemailer');

// 配置邮箱账号
let transporter = nodemailer.createTransport({
  service: 'Gmail', // 使用的邮箱服务,如 Gmail、QQ 邮箱等
  auth: {
    user: 'your_email@gmail.com',
    pass: 'your_email_password'
  }
});

// 邮件内容
let mailOptions = {
  from: '"Sender Name" <your_email@gmail.com>',
  to: 'recipient@example.com',
  subject: '测试邮件',
  text: '这是使用Node.js发送的测试邮件!'
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    return console.log('发送失败:', error);
  }
  console.log('邮件已发送:', info.response);
});

1.4 高级配置:附件、HTML内容

css 复制代码
javascript复制代码
let mailOptions = {
  from: '"Sender" <your_email@gmail.com>',
  to: 'recipient@example.com',
  subject: '带附件的邮件',
  html: '<h1>Hello World</h1><p>这是一封带有附件的HTML邮件。</p>',
  attachments: [
    {
      filename: 'example.pdf',
      path: './files/example.pdf'
    }
  ]
};

二、使用Node.js发送钉钉通知

2.1 钉钉机器人基础

钉钉提供自定义机器人API,支持通过Webhook方式接收通知。首先在钉钉群中添加"机器人",获取Webhook地址。

2.2 发送文本消息

javascript 复制代码
const axios = require('axios');

const webhook = 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN';

const message = {
  msgtype: 'text',
  text: {
    content: '这是通过Node.js发来的钉钉通知!'
  }
};

axios.post(webhook, message)
  .then(res => {
    console.log('钉钉消息发送成功:', res.data);
  })
  .catch(error => {
    console.error('钉钉消息发送失败:', error);
  });

2.3 推送Markdown格式的通知

javascript 复制代码
const markdownMsg = {
  msgtype: 'markdown',
  markdown: {
    title: '系统报警',
    text: '### 紧急通知\n> 系统CPU使用率超过90%,请及时处理!'
  }
};

axios.post(webhook, markdownMsg)
  .then(res => {
    console.log('Markdown消息已推送');
  })
  .catch(error => {
    console.error('推送失败', error);
  });

结语

本文主要是介绍了日常工作中,频繁遇到规律性的发送邮件和钉钉消息的一个便捷方案。

如果你喜欢本教程,记得点赞+收藏!关注我获取更多JavaScript开发干货。


相关推荐
灵感__idea1 小时前
JavaScript高级程序设计(第5版):好的编程就是掌控感
前端·javascript·程序员
烛阴3 小时前
Mix
前端·webgl
代码续发3 小时前
前端组件梳理
前端
试图让你心动3 小时前
原生input添加删除图标类似vue里面移入显示删除[jquery]
前端·vue.js·jquery
陈不知代码4 小时前
uniapp创建vue3+ts+pinia+sass项目
前端·uni-app·sass
小王码农记4 小时前
sass中@mixin与 @include
前端·sass
陈琦鹏4 小时前
轻松管理 WebSocket 连接!easy-websocket-client
前端·vue.js·websocket
hui函数4 小时前
掌握JavaScript函数封装与作用域
前端·javascript
行板Andante5 小时前
前端设计中如何在鼠标悬浮时同步修改块内样式
前端
Carlos_sam5 小时前
Opnelayers:ol-wind之Field 类属性和方法详解
前端·javascript