https://github.com/lunay77/astromailer
AstroMailer 一个每日早安邮件发送器
https://github.com/lunay77/astromailer
astromailer baidu-api docker docker-compose mail nasa nasa-api nasa-apod python python3
Last synced: 2 months ago
JSON representation
AstroMailer 一个每日早安邮件发送器
- Host: GitHub
- URL: https://github.com/lunay77/astromailer
- Owner: LunaY77
- License: apache-2.0
- Created: 2024-12-16T23:16:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-18T09:31:07.000Z (over 1 year ago)
- Last Synced: 2026-04-30T16:33:14.831Z (2 months ago)
- Topics: astromailer, baidu-api, docker, docker-compose, mail, nasa, nasa-api, nasa-apod, python, python3
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AstroMailer 🌌
**AstroMailer** 是一个**每日早安邮件发送器**,它通过集成 **NASA 天文每日一图(APOD)、词霸金句和百度翻译 API**,为用户带来浪漫、温暖的早安邮件。
## 功能概述
* 📧 **每日发送早安邮件**
* 附带 **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:
* [NASA APOD API](https://api.nasa.gov/)
* [百度翻译 API](https://fanyi-api.baidu.com/)
* [词霸 API](https://open.iciba.com/dsapi/)
## 安装与运行
**1. 克隆项目**
```bash
git clone https://github.com/Pale-illusions/AstroMailer.git
cd AstroMailer
```
**2. 创建虚拟环境并安装依赖**
```bash
# 创建虚拟环境
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
```
3. 提交代码并创建 Pull Request。
## 开源协议
本项目采用 [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0)。
---
感谢使用 AstroMailer,让宇宙的浪漫点亮你的每一天!✨