Send a periodic email through Gmail SMTP to a configured Google Voice SMS gateway address. Run it manually or with the included monthly GitHub Actions schedule.
SMTP acceptance is the only delivery result this script can verify. It does not prove SMS delivery or guarantee that a Google Voice number stays active.
- Create a private copy of this repository for your deployment.
- Add the following Actions secrets under Settings → Secrets and variables → Actions.
- Enable Actions and run Google Voice Keep Alive & Auto Log.
- Check both the send step and the destination account.
| Secret | Value |
|---|---|
GMAIL_USER |
Sender's Gmail address |
GMAIL_PASSWORD |
Gmail App Password |
GV_GATEWAY |
Destination ending in @txt.voice.google.com |
Use a dedicated Gmail App Password with two-step verification enabled. Keep credentials and destination addresses out of the repository and logs.
The workflow runs at 00:00 UTC on the first day of each month. Edit its cron expression to change the schedule. Scheduled runs may be delayed.
Runs are serialized and limited to 15 minutes; SMTP has a 30-second timeout. A send error fails the run. The workflow writes a timestamped record to keepalive.log on the logs branch, which requires contents: write permission. This record is not a delivery receipt.
Python's standard library is sufficient. Supply the three settings through your trusted environment or secret manager, then run:
python main.pyThis sends a real message. To run the isolated unit tests instead:
python -m unittest discover -s testsIf SMTP authentication fails, check the account and App Password. If SMTP accepts the message but the destination does not receive it, check the gateway and account directly rather than repeatedly resending.
Support · Contributing · Security · Code of conduct
MIT.