Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

邮件发送服务系统

基于 Express + Vue 3 的批量邮件发送系统,支持通过 SMTP 协议批量发送邮件,并提供 Excel 模板导入收件人、富文本编辑邮件内容等功能。

项目结构

emailServes/
├── backfront/                # 后端服务 (Express.js)
│   ├── app.js                # 服务入口,端口 4443
│   ├── router/               # 路由模块
│   │   ├── verifyLogin.js    # 登录验证接口 /api/login/verify
│   │   ├── emailServer.js    # 邮件发送接口 /api/email/sendemail
│   │   ├── uploads.js        # 文件上传接口 /api/uploads
│   │   └── templateDownload.js # 模板下载接口 /api/template/xlsx
│   ├── handle/               # 业务逻辑
│   │   ├── email.js          # 邮件发送核心逻辑(队列机制)
│   │   ├── nodemailerHandle.js # SMTP 服务器配置与邮件发送
│   │   └── errorHandle.js    # 统一响应处理
│   ├── public/template/      # Excel 模板文件
│   └── .env                  # 环境变量配置
│
└── WebTools/                 # 前端应用 (Vue 3 + Vite)
    ├── src/
    │   ├── views/            # 页面视图
    │   │   ├── login/        # 登录页面
    │   │   └── MainPage.vue  # 主页面(邮件编辑与发送)
    │   ├── components/       # 组件
    │   │   ├── Tiptap.vue    # 富文本编辑器组件
    │   │   └── IntroDialog.vue # 引导弹窗
    │   ├── router/           # 路由配置
    │   ├── stores/           # Pinia 状态管理
    │   ├── styles/           # 样式文件
    │   └── utils/            # 工具函数(Axios 封装)
    └── vite.config.js        # Vite 配置

功能特性

  • SMTP 账号验证:支持QQ SMTP 登录验证
  • 批量邮件发送:通过队列机制管理发送请求,避免并发冲突
  • Excel 导入收件人:上传 Excel 文件一键导入收件人列表,支持模板下载
  • 富文本编辑:集成 Tiptap 富文本编辑器,支持文字排版、图片、链接等
  • 附件上传:支持上传文件作为邮件附件(阿里云 OSS 存储)

快速开始

环境要求

  • Node.js >= 18
  • pnpm(推荐使用 pnpm 作为包管理器)

1. 克隆项目

git clone <仓库地址>
cd emailServes

2. 启动后端

cd backfront

# 安装依赖
pnpm install

# 配置环境变量(编辑 .env 文件,填写阿里云 OSS 配置)
# 如果不需要文件上传功能,可以跳过 OSS 配置

# 启动服务(默认端口 4443)
node app.js

3. 启动前端

cd WebTools

# 安装依赖
pnpm install

# 启动开发服务器
pnpm dev

前端开发服务器默认运行在 http://localhost:5173,会自动代理 API 请求到后端 http://localhost:4443

使用指南

发送邮件流程

  1. 登录:打开应用,输入邮箱地址和 SMTP 授权码(非邮箱密码,需要在邮箱设置中生成)
  2. 导入收件人:点击"下载模板"获取 Excel 模板,按格式填写收件人信息后上传
  3. 编辑邮件:在富文本编辑器中编写邮件主题和正文内容
  4. 发送邮件:点击发送按钮,系统将按队列依次发送邮件

Excel 模板格式

下载的模板包含以下列:

邮箱地址
example@qq.com

SMTP 授权码获取方式

  • QQ 邮箱:设置 → 账户 → POP3/SMTP 服务 → 生成授权码

环境变量

后端 .env 文件配置项说明:

变量名 说明
ALIYUN_REGION 阿里云 OSS 地域节点
ALIYUN_ACCESS_KEY_ID 阿里云 AccessKey ID
ALIYUN_ACCESS_KEY_SECRET 阿里云 AccessKey Secret
ALIYUN_BUCKET 阿里云 OSS Bucket 名称
OSS_BASE_URL OSS 访问基础 URL

注意:如果不需要文件上传功能,可以不配置 OSS 相关变量。

技术栈

后端

  • Express.js - Web 服务框架
  • nodemailer - SMTP 邮件发送
  • multer - 文件上传处理
  • ali-oss - 阿里云 OSS 对象存储
  • xlsx - Excel 文件处理
  • cors - 跨域处理

前端

  • Vue 3 - 前端框架(组合式 API)
  • Vite - 构建工具
  • Element Plus - UI 组件库
  • Pinia - 状态管理
  • Tiptap - 富文本编辑器
  • xlsx - Excel 文件读取
  • Axios - HTTP 请求

常见问题

  1. 登录失败提示"请检查账号密码是否正确":请确认使用的是 SMTP 授权码而非邮箱密码
  2. 邮件发送失败:检查 SMTP 服务是否已开启,部分邮箱需要手动开启 SMTP 功能
  3. 模板下载后打不开:确保后端服务正常运行,且 public/template/template.xlsx 文件存在

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages