https://github.com/happylesliealexander/auto-email-weather
每日UTC+8早上6点自动发送天气预报
https://github.com/happylesliealexander/auto-email-weather
Last synced: 6 months ago
JSON representation
每日UTC+8早上6点自动发送天气预报
- Host: GitHub
- URL: https://github.com/happylesliealexander/auto-email-weather
- Owner: HappyLeslieAlexander
- License: gpl-3.0
- Created: 2024-07-21T08:22:30.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-07-21T12:46:35.000Z (11 months ago)
- Last Synced: 2024-07-22T09:47:10.489Z (11 months ago)
- Language: Python
- Size: 34.2 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 每日天气报告发送脚本
## 介绍该 Python 脚本通过 OpenWeatherMap API 获取指定城市的天气信息,并通过 SMTP 服务器发送每日天气报告邮件。邮件内容包括简体中文的天气描述、当前温度、最高温度、最低温度、湿度、风速、风向、日出时间和日落时间。
## 功能
获取指定城市的天气信息(使用 OpenWeatherMap API)。
通过 SMTP 服务器发送天气报告邮件。
支持简体中文天气描述。
包含问候语和详细的天气信息。
## 用法
安装依赖
在运行脚本之前,确保已安装所需的 Python 包:
```
pip install requests
```## 设置环境变量
为了脚本能够正常运行,需要设置以下环境变量:
SMTP_SERVER:SMTP 服务器地址(如 smtp.gmail.com)。
SMTP_PORT:SMTP 服务器端口(通常是 465 或 587)。
SMTP_USER:SMTP 服务器的用户名(通常是你的电子邮件地址)。
SMTP_PASSWORD:SMTP 服务器的密码或应用专用密码。
EMAIL_FROM:发送邮件的电子邮件地址。
EMAIL_TO:接收邮件的电子邮件地址。
WEATHER_API_KEY:OpenWeatherMap API 密钥。
WEATHER_CITY:需要获取天气信息的城市名称。
你可以在 .env 文件中设置这些变量,然后在脚本中使用 python-dotenv 来加载它们,或直接在运行脚本前导出这些环境变量。
## 运行脚本
确保所有环境变量都已正确设置,然后运行脚本:
```
python send_weather_email.py
```## GitHub Actions 自动化
你可以使用 GitHub Actions 来每天定时运行该脚本并发送天气报告邮件。以下是一个 GitHub Actions 工作流配置示例:
```
name: Send Daily Weather Reporton:
schedule:
- cron: '0 22 * * *' # 每天 UTC 时间 22:00 运行,相当于 UTC+8 的早上 6 点
workflow_dispatch: # 允许手动触发工作流jobs:
send_email:
runs-on: ubuntu-lateststeps:
- name: Checkout repository
uses: actions/checkout@v3- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests- name: Run the script
env:
SMTP_SERVER: ${{ secrets.SMTP_SERVER }}
SMTP_PORT: ${{ secrets.SMTP_PORT }}
SMTP_USER: ${{ secrets.SMTP_USER }}
SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }}
EMAIL_FROM: ${{ secrets.EMAIL_FROM }}
EMAIL_TO: ${{ secrets.EMAIL_TO }}
WEATHER_API_KEY: ${{ secrets.WEATHER_API_KEY }}
WEATHER_CITY: ${{ secrets.WEATHER_CITY }}
run: python send_weather_email.py
```示例输出
收到的电子邮件将包含以下内容:```
早上好!这是今天的天气报告:
天气: 多云
温度: 25°C
最高温度: 28°C
最低温度: 22°C
湿度: 78%
风速: 5 m/s
风向: 东南 (135°)
日出时间: 05:45:00
日落时间: 18:30:00
```## 备注
确保 OpenWeatherMap API 密钥有效,并且你已经在 OpenWeatherMap 中启用了 API 访问。
确保 SMTP 服务器设置正确,并且你的邮箱允许使用 SMTP 发送邮件。如果使用 Gmail,请确保启用了“允许不太安全的应用”或生成了应用专用密码。
通过以上设置和使用,你可以每天自动获取并发送详细的天气报告。
### 捐赠
加密货币
TRON
TY7n1xwiHCBqcQqGH1cxjTQqZTuTXbzB4S
Ethereum
0xed57e7237e88cec19d3fd12a0d26bacb1dcc247b
Polygon
0xed57e7237e88cec19d3fd12a0d26bacb1dcc247b
TON
UQC4r4gxAIbOTEEZGG-C1Ffn9inRo24J7qw3U0dFfaIfKyFr
### 感谢你右上角的star🌟
[](https://starchart.cc/HappyLeslieAlexander/Auto-Email-Weather)