跳转至

AstroMailer 🌌

约 509 个字 29 行代码 1 张图片 预计阅读时间 2 分钟

AstroMailer 是一个每日早安邮件发送器,它通过集成 NASA 天文每日一图(APOD)、词霸金句和百度翻译 API,为用户带来浪漫、温暖的早安邮件。

github地址: AstroMailer

功能概述

  • 📧 每日发送早安邮件
    • 附带 NASA 天文每日一图及其解释。
    • 包含词霸每日金句(中英双语)。
    • 邮件支持中英文翻译,并使用简洁优雅的 HTML 样式设计。
  • 🌌 随机背景色和样式
    • 邮件中的句子和背景配色采用动态随机生成,让每一天的邮件都有独特的风格。
    • 🔄 缓存机制
    • 使用 diskcache 缓存 NASA 图片和内容,减少重复 API 请求。

项目架构

AstroMailer 的主要功能分为以下模块:

  1. 邮件发送模块
    • 使用 smtplib 实现邮件的发送。
    • 支持 HTML 格式化邮件内容。
  2. API 调用模块
    • 集成 NASA APOD API 获取每日天文图片和描述。
    • 集成百度翻译 API 翻译图片描述为中文。
    • 使用词霸 API 获取每日金句。
  3. 定时任务模块
    • 使用 schedule 实现每天早上 8 点自动发送邮件。
  4. 缓存模块
    • 使用 diskcache 缓存数据,避免频繁调用 API。

运行截图

📧 邮件示例

技术栈

  • 编程语言: Python 3.10+

  • 主要依赖:

    • smtplib: 发送邮件
    • schedule: 定时任务调度
    • diskcache: 本地缓存
    • requests: 调用 API
    • PyYAML: 解析配置文件
  • API:

安装与运行

1. 克隆项目

Bash
git clone https://github.com/Pale-illusions/AstroMailer.git
cd AstroMailer

2. 创建虚拟环境并安装依赖

Bash
1
2
3
4
5
6
7
8
9
# 创建虚拟环境
python3 -m venv myvenv

# 激活虚拟环境
source myvenv/bin/activate  # macOS/Linux
myvenv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt

3. 配置环境

resources/config.yaml 文件中配置你的 API 密钥和邮件账户信息。

示例配置文件 config.yaml

YAML
api_key:
  nasa: "你的NASA_API_KEY"
  baidu_translate:
    appid: "你的百度翻译APPID"
    secret_key: "你的百度翻译SECRET_KEY"

email:
  name: "AstroMailer"
  smtp_server: "smtp.gmail.com"
  smtp_port: 587
  sender: "your_email@example.com"
  password: "your_email_password"
  recipients:
    - "recipient1@example.com"
    - "recipient2@example.com"

4. 启动服务

直接运行

Bash
python src/main.py

docker

Bash
docker-compose up -d

贡献指南

欢迎贡献代码!如果你想为 AstroMailer 提交新的功能或修复 bug,请按照以下步骤操作:

  1. Fork 仓库。
  2. 创建新分支:
Bash
git checkout -b feature/your-feature-name
  1. 提交代码并创建 Pull Request。

开源协议

本项目采用 Apache-2.0 license


感谢使用 AstroMailer,让宇宙的浪漫点亮你的每一天!✨