Untitled
import tkinter as tk from tkinter import ttk, messagebox, filedialog from twilio.rest import Client ACCOUNT_SID = "your_account_sid" AUTH_TOKEN = "your_auth_token" TWILIO_PHONE_NUMBER = "your_twilio_number" def send_message(): client = Client(ACCOUNT_SID, AUTH_TOKEN) numbers = recipient_listbox.get(0, tk.END) message_content = message_text.get("1.0", tk.END).strip() if not message_content: messagebox.showwarning("Warning", "Message content cannot be empty!") return if not numbers: messagebox.showwarning("Warning", "No recipients added!") return for number in numbers: try: message = client.messages.create( body=message_content, from_=TWILIO_PHONE_NUMBER, to=number ) print(f"Message sent to {number}: {message.sid}") except Exception as e: messagebox.showerror("Error", f"Failed to send message to {number}: {str(e)}") messagebox.showinfo("Success", "Messages sent successfully!") def reset_fields(): recipient_entry.delete(0, tk.END) message_text.delete("1.0", tk.END) def add_number(): number = recipient_entry.get() if number: recipient_listbox.insert(tk.END, number) recipient_entry.delete(0, tk.END) else: messagebox.showwarning("Warning", "Please enter a number!") def load_from_file(): file_path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt")]) if file_path: with open(file_path, "r") as file: for line in file: recipient_listbox.insert(tk.END, line.strip()) def view_templates(): messagebox.showinfo("Templates", "Feature under development.") root = tk.Tk() root.title("SMS Announcement System") root.geometry("700x500") header_frame = tk.Frame(root, bg="#0078D7", height=60) header_frame.pack(fill=tk.X) header_label = tk.Label(header_frame, text="Pamantasan ng Lungsod ng Marikina\nSenior High School - SMS Announcement System", bg="#0078D7", fg="white", font=("Arial", 14, "bold"), justify=tk.CENTER) header_label.pack(pady=10) recipient_frame = tk.Frame(root, padx=10, pady=10) recipient_frame.pack(fill=tk.X) tk.Label(recipient_frame, text="Enter Recipient Number:").grid(row=0, column=0, sticky=tk.W) recipient_entry = tk.Entry(recipient_frame, width=30) recipient_entry.grid(row=0, column=1, padx=5) add_button = tk.Button(recipient_frame, text="Add", command=add_number) add_button.grid(row=0, column=2, padx=5) tk.Label(recipient_frame, text="Total Numbers:").grid(row=1, column=0, sticky=tk.W, pady=5) recipient_listbox = tk.Listbox(recipient_frame, height=7, width=50) recipient_listbox.grid(row=1, column=1, columnspan=2, pady=5) message_frame = tk.Frame(root, padx=10, pady=10) message_frame.pack(fill=tk.X) tk.Label(message_frame, text="Message:").grid(row=0, column=0, sticky=tk.W) message_text = tk.Text(message_frame, height=5, width=60) message_text.grid(row=0, column=1, pady=5, padx=5) options_frame = tk.Frame(root, padx=10, pady=10) options_frame.pack(fill=tk.X) tk.Label(options_frame, text="Options:").grid(row=0, column=0, sticky=tk.W) delayed_check = tk.Checkbutton(options_frame, text="Delayed Delivery") delayed_check.grid(row=0, column=1, sticky=tk.W) save_sent_check = tk.Checkbutton(options_frame, text="Save Sent Messages") save_sent_check.grid(row=1, column=0, sticky=tk.W) save_template_check = tk.Checkbutton(options_frame, text="Save Message to Templates") save_template_check.grid(row=1, column=1, sticky=tk.W) view_template_button = tk.Button(options_frame, text="View Templates", command=view_templates) view_template_button.grid(row=2, column=1, sticky=tk.W, pady=5) action_frame = tk.Frame(root, pady=10) action_frame.pack() send_button = tk.Button(action_frame, text="Send", bg="green", fg="white", command=send_message) send_button.pack(side=tk.LEFT, padx=5) reset_button = tk.Button(action_frame, text="Reset", bg="red", fg="white", command=reset_fields) reset_button.pack(side=tk.LEFT, padx=5) load_button = tk.Button(action_frame, text="Load Contacts from File", command=load_from_file) load_button.pack(side=tk.LEFT, padx=5) root.mainloop()
Leave a Comment