This project forwards incoming email from designated Gmail accounts to specific topics in an Arizona Free Flight Telegram group.
The system currently supports two forwarding paths:
- Rescue:
rescueAddress→ Rescue topic - Retrieve:
retrieveAddress→ Retrieve topic
Each path is independent at the Gmail/Pub/Sub/Cloud Function level while sharing the Telegram bot and Google Cloud project.
Gmail account
│
│ Gmail watch
▼
Google Pub/Sub topic
│
│ notification
▼
Cloud Function: email-to-telegram-*
│
│ Gmail API
│ Telegram Bot API
▼
Arizona Free Flight Telegram topic
Gmail watches have a finite lifetime, so each path also has a scheduled renewal function:
Cloud Scheduler
│
│ daily at 06:00 America/Phoenix
▼
Cloud Function: renew-gmail-watch-*
│
▼
Gmail API users.watch()
- Overview — purpose, scope, and system inventory
- Design — architecture and implementation
- Operations — deployment, verification, monitoring, and troubleshooting
- Maintenance — changing the system and adding forwarding paths
- Contributing — development workflow and repository portability
From the email2telegram/ directory:
gcloud functions list --project=email-to-telegram-455900 --regions=us-central1 --format="table(name.basename(),buildConfig.runtime,state)"gcloud scheduler jobs list --location=us-central1 --project=email-to-telegram-455900 --format="table(name.basename(),state,schedule,timeZone)"The four production functions should normally be python313 and ACTIVE, and both Scheduler jobs should be ENABLED.
This project is licensed under the Apache License, Version 2.0.
See the LICENSE file for the complete license text.
Copyright 2026 John R. Wolfe