Bulk+smssender+github+work Link
schedule: - cron: '0 9 * * *'
jobs: send-bulk-sms: runs-on: ubuntu-latest
steps:
- 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 Bulk SMS Script
env:
SMS_API_KEY: $ secrets.SMS_API_KEY
SENDER_ID: $ secrets.SENDER_ID
run: python sender.py
Most scripts expect a numbers.csv with a column named phone. Format: E.164 (e.g., +14155552671).
bulk-sms-sender/
├── .github/workflows/send-sms.yml
├── data/
│ ├── recipients.csv
│ └── message.txt
├── src/
│ └── send_sms.py
├── requirements.txt
└── README.md
In the modern communication landscape, Short Message Service (SMS) remains a powerful channel for alerts, marketing, and two-factor authentication. For developers, the challenge is often not just sending a message, but automating its delivery at scale. A fascinating, low-cost solution has emerged: using GitHub Actions as an orchestration engine for a bulk SMS sender. This essay explores the technical architecture, practical applications, and critical limitations of this approach. bulk+smssender+github+work
API_URL = "https://api.twilio.com/2010-04-01/Accounts/sid/Messages.json"
def send_sms(phone_number): payload = "To": phone_number, "Body": "Your Alert Message", "From": "+1234567890" try: response = requests.post(API_URL, data=payload, auth=('SID', 'TOKEN')) return f"Sent to phone_number: response.status_code" except Exception as e: return f"Failed phone_number: e" schedule: - cron: '0 9 * * *'
API_KEY = os.getenv('SMS_API_KEY') SENDER_ID = os.getenv('SENDER_ID') # e.g., "MyCompany" API_ENDPOINT = "https://api.example-sms-provider.com/send"