ARTICLE · 1101229
【项目源码】情侣纪念日邮件系统,程序员的浪漫:写了个程序,每天替我说「我爱你」
一、项目介绍
一款基于纯 PHP 开发的纪念日邮件系统源码,无需任何框架依赖,支持虚拟主机直接部署。
项目定位为「情感化的定时邮件服务」——用户注册账号后,可设置与另一半在一起的日期、对方邮箱、所在城市等信息,系统会自动或手动发送一封精美的 HTML 邮件给对方,邮件内容包含:在一起的天数、当日实时天气与穿衣建议、纪念日倒计时、每日情话等温馨内容。
项目内置完整的会员系统。免费用户注册即获赠 5 次发送机会,之后每月 3 次免费额度;VIP 用户则享有无限次发送、每日自动定时发送、自定义邮件内容、多纪念日管理、专属公开展示页等特权。
整个系统开箱即用,提供一键安装向导(install.php),自动创建数据库表和初始数据,适合个人站长、自媒体博主快速搭建变现。






二、项目结构目录
JP10-邮箱表白纪念日源码/│├── includes/ # 核心公共文件│ ├── config.php # 全局配置(数据库/SMTP/天气API/会员规则/卡密类型)│ ├── db.php # PDO 数据库封装类(单例模式,含 site_config 读写)│ ├── functions.php # 公共函数库(Session/用户/纪念日/卡密/CSRF/分页)│ ├── mail.php # 邮件发送类(原生 SMTP,无需 composer)│ ├── weather.php # 和风天气 API 封装(城市查询/实时天气/穿衣建议)│ └── sidebar.php # 用户前台侧边栏组件│├── admin/ # 管理后台│ ├── .htaccess # 目录保护│ ├── index.php # 后台首页(统计概览 + 快捷操作)│ ├── login.php # 管理员登录│ ├── logout.php # 退出登录│ ├── users.php # 用户管理(封禁/解封/赠VIP/添加备注)│ ├── cards.php # 卡密管理(批量生成/查看/删除)│ ├── quotes.php # 情话管理(增删改查)│ └── includes/│ └── admin_sidebar.php # 后台侧边栏组件│├── api/│ └── logout.php # 前台退出登录接口│├── assets/ # 静态资源│ ├── css/│ │ └── style.css # 全局样式(渐变紫粉主题,响应式布局)│ └── js/│ └── app.js # 前端交互脚本│├── .htaccess # 根目录 URL 重写/保护├── 404.html # 自定义 404 页面├── index.php # 首页(Landing Page,含数据统计展示)├── login.php # 用户登录├── register.php # 用户注册(注册赠送 5 次发送机会)├── dashboard.php # 用户后台首页(在一起天数/天气/纪念日倒计时/发送记录)├── settings.php # 纪念日设置(增/删/改,VIP 可开启自动发送)├── send.php # 手动发送邮件页面├── history.php # 邮件发送记录├── love.php # VIP 专属:公开纪念日展示页(/love.php?s=slug)├── memo.php # 用户备忘录(VIP 支持定时提醒邮件)├── vip.php # 会员中心 / 卡密激活页├── cron.php # 定时任务(每10分钟执行,自动发送到期邮件)├── install.php # 一键安装向导(用后需删除)└── README.md # 项目说明文档三、项目主要技术框架
includes/db.php 中的 DB 类,封装 exec/fetchOne/fetchAll/fetchValue/config 等方法 | ||
devapi.qweather.com,支持城市 ID 查询 → 实时天气 → 穿衣建议 | ||
assets/js/app.js,无 jQuery/Vue/React 依赖 | ||
httponly Cookie、use_strict_mode、全局异常处理器 | ||
数据库表结构
系统共 7 张数据表:
users | |
anniversaries | |
email_logs | |
cards | |
love_quotes | |
site_config | |
memos |
四、项目主要功能
4.1 用户系统
注册/登录:邮箱注册,注册即赠送 5 次免费发送机会 个人中心:展示在一起天数、今日天气、纪念日倒计时、发送记录 状态管理:管理员可封禁/解封用户
4.2 会员卡密系统
管理员后台批量生成卡M(最多 100 张/次),卡M格式为 XXXX-XXXX-XXXX-XXXX用户在会员中心( /vip.php)输入卡M激活,支持 VIP 叠加(在剩余有效期基础上续期)VIP 特权:无限次发送、每日自动定时发送、自定义邮件内容、多纪念日管理、专属公开展示页
4.3 纪念日管理
添加/编辑/删除纪念日 免费用户可管理 1 个纪念日,VIP 用户可管理无限个 可设置:在一起日期、纪念日标题、对方姓名/邮箱、所在城市 VIP 可设置自动发送时间(默认 08:00)和自定义邮件内容 VIP 可设置自定义 slug,生成公开展示页( /love.php?s=your-slug)
4.4 邮件发送
手动发送:用户在发送页面选择纪念日,立即发送邮件 自动发送:VIP 用户开启后,通过 cron.php定时任务每日自动发送邮件内容包含: 在一起的天数(大数字展示) 当日实时天气(温度/体感/湿度/风向/穿衣建议) 所有纪念日倒计时(30 天内即将到来的) 每日情话(从数据库随机取,可后台管理) VIP 自定义内容(可选) 邮件为精美 HTML 模板,渐变紫粉配色,兼容各邮箱客户端
4.5 天气服务
接入和风天气 API(免费版) 两步请求:城市名称 → 城市 ID → 实时天气 根据温度和天气自动生成穿衣建议(9 个温度区间 + 雨雪天带伞提醒)
4.6 备忘录功能
用户可创建备忘事项(最多 500 字) VIP 用户可设置定时邮件提醒 支持标记完成 / 删除 管理员可给用户添加管理备注
4.7 管理后台
4.8 其他功能
公开纪念日展示页:VIP 专属,通过 slug 访问,展示在一起天数和情话 404 页面:自定义美化 404 页面 全局异常处理:任何未捕获错误显示友好提示页,而非空白页 CSRF 防护:表单提交携带 CSRF Token
五、项目安装和部署
5.1 系统要求
PHP ≥ 7.4(推荐 8.0+) MySQL ≥ 5.7 / MariaDB ≥ 10.3 PHP 扩展: pdo_mysql、curl、openssl服务器可发起外部 HTTPS 请求(用于天气 API)
5.2 快速安装(一键安装向导)
步骤 1:上传文件
将整个项目文件夹上传至服务器网站根目录(如 /var/www/html/ 或宝塔面板的站点目录)。
步骤 2:访问安装向导
浏览器访问 http://yourdomain.com/install.php,在页面中填写以下配置:
数据库配置:主机地址、数据库名、用户名、密码 站点配置:站点名称、站点网址 管理员账号:管理员邮箱、管理员密码 SMTP 邮件配置:SMTP 服务器、端口、加密方式、发件邮箱、授权码 和风天气 API:API Key(可选,不填则无天气功能)
点击「一键安装」,系统将自动:
测试数据库连接 创建数据库和全部 7 张数据表 写入 includes/config.php配置文件插入 25 条内置情话数据和站点配置
步骤 3:删除安装文件
安装完成后,立即删除 install.php,防止他人重复安装。
5.3 手动配置(可选)
如不使用安装向导,可直接编辑 includes/config.php,修改以下关键配置项:
// 数据库define('DB_HOST', 'localhost');define('DB_NAME', 'anniversary');define('DB_USER', 'root');define('DB_PASS', 'your_password');// 管理员账号define('ADMIN_EMAIL', 'admin@yourdomain.com');define('ADMIN_PASSWORD', 'your_admin_password');// SMTP 邮件配置(以 QQ 邮箱为例)define('SMTP_HOST', 'smtp.qq.com');define('SMTP_PORT', 465);define('SMTP_SECURE', 'ssl');define('SMTP_USER', 'your@qq.com');define('SMTP_PASS', 'xxxxxxxxxxxxxxxx'); // QQ邮箱授权码,非登录密码// 和风天气 APIdefine('QWEATHER_KEY', 'your_qweather_key');5.4 配置定时任务
自动发送功能需要配置服务器定时任务:
Linux crontab 方式:
crontab -e# 每10分钟检查一次,自动发送到期邮件*/10 * * * * php /var/www/html/cron.php >> /var/log/anniv_cron.log 2>&1宝塔面板方式:
进入「计划任务」→「Shell 脚本」→ 填写 php /www/wwwroot/yoursite/cron.php,周期设置为每 10 分钟。
5.5 SMTP 配置说明
5.6 和风天气 API 申请
访问 https://dev.qweather.com/ 注册账号 → 创建项目 → 创建凭据 免费版使用 devapi.qweather.com(已在 config.php 中默认配置)付费版改为 api.qweather.com将 Key 填入 config.php的 QWEATHER_KEY
5.7 安全建议
安装完成后删除 install.php修改管理员默认密码 admin123456设置 .htaccess禁止直接访问 includes/目录:
Apache:
<Directory /var/www/html/includes> Require all denied</Directory>Nginx:
location /includes { deny all; }生产环境关闭 display_errors(将 config.php中 ini_set('display_errors', 0))确保 includes/config.php文件权限不可被外部直接下载
六、总结
恋恋时光 是一套完整的、可商用的纪念日邮件系统源码,核心特点:
零依赖:纯 PHP + 原生 SMTP,无需 composer/框架,虚拟主机即可部署 开箱即用:一键安装向导,自动建表建数据 完整变现闭环:卡M生成 → 用户购买 → 卡M激活 → VIP 享受服务 精美设计:渐变紫粉主题,邮件模板兼容各邮箱客户端 功能丰富:天气/情话/倒计时/自定义内容/公开展示页/备忘录 安全可靠:PDO 预处理、CSRF 防护、全局异常处理
这个项目源码获取方式
关注公众号,私信回复:JP10