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


相关推荐
程序员黑豆14 小时前
AI全栈开发之Java:什么是JDK
前端·后端·ai编程
To_OC14 小时前
万字解析《JS语言精粹》之第四章:函数15大核心精髓(JS灵魂核心)
前端·javascript·代码规范
宋拾壹14 小时前
同时添加多个类目
android·开发语言·javascript
IT知识分享14 小时前
从零开发在线简繁转换工具:OpenCC 实战、避坑经验与方案选型
javascript·python
mqcode14 小时前
Vue3 + Element Plus + Vite 企业级后台框架搭建全流程
前端
SL-staff14 小时前
Web 白板技术架构深度解析:从渲染到协作的选型哲学
前端·架构
川冰ICE14 小时前
JavaScript实战④|天气查询应用,调用API与异步处理
javascript·css·css3
微扬嘴角14 小时前
react篇4--setState、LazyLoad和Hooks
前端·javascript·react.js
杨梦馨15 小时前
万级数据表格卡死?Web Worker 一招搞定
前端·javascript·vue.js
阿明在折腾15 小时前
从Canvas到AI模型:我在线工具站里的图片处理实战
前端·后端