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开发干货。


相关推荐
vx_bisheyuange4 分钟前
基于SpringBoot的便利店信息管理系统
前端·javascript·vue.js·毕业设计
晚烛5 分钟前
智启工厂脉搏:基于 OpenHarmony + Flutter 的信创工业边缘智能平台构建实践
前端·javascript·flutter
Zsnoin能7 分钟前
都快2026了,还有人不会国际化和暗黑主题适配吗,一篇文章彻底解决
前端·javascript
两个西柚呀9 分钟前
es6和commonjs模块化规范的深入理解
前端·javascript·es6
www_stdio9 分钟前
爬楼梯?不,你在攀登算法的珠穆朗玛峰!
前端·javascript·面试
爱吃大芒果10 分钟前
Flutter 表单开发实战:表单验证、输入格式化与提交处理
开发语言·javascript·flutter·华为·harmonyos
光影少年10 分钟前
RN vs Flutter vs Expo 选型
前端·flutter·react native
风止何安啊17 分钟前
🚀别再卷 Redux 了!Zustand 才是 React 状态管理的躺平神器
前端·react.js·面试
鹿角片ljp22 分钟前
Spring Boot Web入门:从零开始构建web程序
前端·spring boot·后端
向下的大树28 分钟前
Vue 2迁移Vue 3实战:从痛点到突破
前端·javascript·vue.js