send SMS
Build, push image, and notify Watchtower / build-image (push) Successful in 44s
Build, push image, and notify Watchtower / notify (push) Successful in 12s

This commit is contained in:
2026-08-17 15:19:35 +02:00
parent 5ae2dc1023
commit 3db52f1cad
2 changed files with 97 additions and 17 deletions
+58
View File
@@ -0,0 +1,58 @@
import os
import logging
from twilio.rest import Client
logger = logging.getLogger(__name__)
def send_alert_sms(to_phone: str, room_title: str, room_link: str = None, client_email: str = None) -> bool:
"""
Sends an SMS alert using Twilio notifying the client of an issue and support room creation.
"""
account_sid = os.environ.get("TWILIO_SID")
auth_token = os.environ.get("TWILIO_ACCOUNT_SECRET")
from_phone = os.environ.get("TWILIO_PHONE_NUMBER") # Requires your Twilio sender phone number
if not account_sid or not auth_token or not from_phone:
logger.error("Twilio environment variables (TWILIO_SID, TWILIO_ACCOUNT_SECRET, TWILIO_PHONE_NUMBER) missing.")
return False
if not to_phone:
logger.warning("No recipient phone number provided for SMS.")
return False
# --- PRINT LINK/INFO BEFORE SENDING ---
print("\n" + "="*50)
print(f"[Twilio] Preparing SMS for: {to_phone}")
print(f"[Twilio] Room Title: {room_title}")
if room_link:
print(f"[Twilio] Room Link: {room_link}")
else:
print(f"[Twilio] Link: Invitation email sent to {client_email or 'client inbox'}")
print("="*50 + "\n")
# --- BUILD SMS CONTENT ---
body = (
f"Alert: A technical issue occurred with your equipment/microwave. "
f"A support chat room '{room_title}' has been created to assist you.\n\n"
)
if room_link:
body += f"Join chat room: {room_link}\n"
if client_email:
body += f"An invitation link has also been sent to your email ({client_email})."
else:
body += "An invitation link has been sent to your inbox."
try:
client = Client(account_sid, auth_token)
message = client.messages.create(
body=body,
from_=from_phone,
to=to_phone
)
logger.info(f"SMS sent successfully to {to_phone}. Message SID: {message.sid}")
return True
except Exception as e:
logger.exception(f"Failed to send SMS via Twilio to {to_phone}: {e}")
return False