Skip to content

About

邮件提醒

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

邮箱订阅管理网站

每日发送邮件简报项目:数据通过爬虫/接口获取,支持邮箱订阅、SMTP 配置、天气地点设置,邮件模板为新粗野主义风格海报。

功能

  1. 邮箱订阅:公开页输入邮箱点击订阅,订阅后每天会收到一封简报邮件。
  2. 订阅管理:查看订阅列表、删除订阅。
  3. SMTP 配置:配置发件邮箱和 SMTP 服务器,可向指定邮箱发送测试邮件。
  4. 天气地点:设置取天气的经纬度地点(默认用于邮件中的天气数据)。

技术栈

  • 后端:Python Django 5 + Django REST framework
  • 数据库:SQLite
  • 前端:管理后台为单页 HTML + Tailwind(shadcn-admin 风格)

邮件模板内容(新粗野主义海报)

  • 头部:日期、星期几、天气(地点、温度、天气状况)
  • 加密货币:BTC、ETH、SOL、USDT/CNY
  • 股指:纳斯达克、标普500、道琼斯;上证、深证、创业板;恒生、恒生科技;日经、英国富时;美元离岸人民币;黄金、白银
  • 新闻与热点:百度热点、币圈新闻(律动 BlockBeats)、微博热搜等,表格展示标题、简介、时间,可点击查看详情
  • 底部:版权信息(小芳)

数据来源

  • 天气:Open-Meteo API(经纬度 + 天气代码/图标)
  • 币价:CoinGecko(BTC/ETH/SOL、USDT/CNY)
  • 股票/指数:Yahoo Finance 风格接口
  • 百度热点:top.baidu.com API
  • 币圈快讯:律动 BlockBeats API、Foresight News 页面解析
  • 微博热搜:微博热搜接口(可选)

安装与运行

cd email_subscription_site
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
pip install playwright
playwright install chromium
 playwright install-deps

运行 demo

运行demo

每日定时发送

  • 方式一(推荐):cron 定时执行(早上 8 点 / 中午 12 点 / 晚上 11 点)0 8 * * * cd /path/to/email_subscription_site && .venv/bin/python manage.py send_daily``0 12 * * * cd /path/to/email_subscription_site && .venv/bin/python manage.py send_daily``0 23 * * * cd /path/to/email_subscription_site && .venv/bin/python manage.py send_daily
  • 方式二:HTTP 触发 POST /api/send-daily/(可被外部定时任务调用)

API 概览

方法 路径 说明
POST /api/subscribe/ 订阅邮箱(body:{ "email": "[email protected]" })
GET /api/subscription-list/ 订阅列表
DELETE /api/subscription/<id>/delete/ 删除订阅
GET/POST /api/smtp/ SMTP 配置列表/创建
POST /api/smtp/<id>/test_send/ 测试发送(body:{ "to_email": "xxx" })
GET/POST /api/weather-location/ 天气地点列表/创建
POST /api/send-daily/ 触发每日发送

环境变量(可选)

  • DJANGO_SECRET_KEY:生产环境务必设置
  • DEBUG=0:关闭调试
  • CELERY_BROKER_URL:若使用 Celery 定时任务

邮箱订阅管理网站已创建在 /Users/all/email_subscription_site,包含以下内容。

  1. 功能概览 邮箱订阅:首页输入邮箱点击订阅,订阅后每天会收到一封简报邮件。 订阅管理:查看订阅列表、删除订阅(管理页 + API)。 SMTP 配置:配置发件邮箱和 SMTP,可向指定邮箱发送测试邮件。 天气地点:设置取天气的经纬度(用于邮件中的天气数据)。
  2. 邮件模板(新粗野主义海报) 头部:日期、星期几、天气(地点、温度、天气状况)。 加密货币:BTC、ETH、SOL、USDT/CNY。 股指:纳斯达克、标普500、道琼斯;上证、深证、创业板;恒生、恒生科技;日经、英国富时;美元离岸人民币;黄金、白银。 新闻与热点:百度热点、币圈新闻(律动 BlockBeats)、微博热搜等,表格展示标题、简介、时间。 底部:版权信息(小芳)。
  3. 数据抓取 天气:Open-Meteo API(经纬度 + 天气代码/描述)。 币价:CoinGecko(BTC/ETH/SOL、USDT/CNY)。 股票/指数:Yahoo Finance 风格接口。 百度热点:你提供的 top.baidu.com API。 币圈:律动 BlockBeats API;Foresight News 用 BeautifulSoup 解析页面。 微博热搜:微博热搜接口(已接好,可扩展小红书/抖音)。
  4. 项目结构(简要) email_subscription_site/ ├── config/ # Django 配置 ├── core/ │ ├── models.py # 订阅、SMTP、天气地点 │ ├── views.py # 订阅 API、管理 API、每日发送 │ ├── fetchers/ # 天气、币价、股票、新闻、热搜 │ ├── email_context.py # 组装邮件上下文 │ └── management/commands/send_daily.py # 每日发送命令 ├── templates/core/ │ ├── email_poster.html # 邮件海报模板 │ ├── admin.html # 管理后台单页 │ └── landing.html # 公开订阅页 ├── requirements.txt ├── manage.py └── README.md
  5. 本地运行 cd /Users/all/email_subscription_sitepython3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txtpython manage.py migratepython manage.py runserver 公开订阅页:http://127.0.0.1:8000/ 管理后台:http://127.0.0.1:8000/api/admin-page/ Django Admin:http://127.0.0.1:8000/admin/(需先 createsuperuser)
  6. 每日定时发送 cron:0 8 * * * cd /path/to/email_subscription_site && .venv/bin/python manage.py send_daily 或:定时请求 POST /api/send-daily/ 更多说明见项目里的 README.md。若你希望再扩展(例如小红书/抖音热搜、国外新闻、二维码图片等),可以说明具体需求,我按你的环境继续改。

About

邮件提醒

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages