From eaab87febed726aeed3125f6950a2cb6aaa30961 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 21 Jan 2025 19:43:56 +0100 Subject: [PATCH] Add main.py --- main.py | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..58021f0 --- /dev/null +++ b/main.py @@ -0,0 +1,91 @@ +import mysql.connector +from openpyxl import Workbook +import smtplib +from email.mime.multipart import MIMEMultipart +from email.mime.base import MIMEBase +from email.mime.text import MIMEText +from email import encoders +import os + + +def perform_query(query, db_config): + try: + connection = mysql.connector.connect(**db_config) + cursor = connection.cursor() + cursor.execute(query) + + results = cursor.fetchall() + column_headers = [i[0] for i in cursor.description] + return results, column_headers + + except mysql.connector.Error as e: + print(f"Error: {e}") + finally: + if connection.is_connected(): + cursor.close() + connection.close() + + +def write_to_excel(data, headers, file_name): + workbook = Workbook() + sheet = workbook.active + sheet.append(headers) + + for row in data: + sheet.append(row) + + workbook.save(file_name) + print(f"Excel file saved as {file_name}") + + +def send_email(subject, body, recipient_email, sender_email, sender_password, file_path): + try: + msg = MIMEMultipart() + msg['From'] = sender_email + msg['To'] = recipient_email + msg['Subject'] = subject + + msg.attach(MIMEText(body, 'plain')) + + with open(file_path, 'rb') as attachment: + part = MIMEBase('application', 'octet-stream') + part.set_payload(attachment.read()) + encoders.encode_base64(part) + part.add_header( + 'Content-Disposition', + f'attachment; filename={os.path.basename(file_path)}' + ) + msg.attach(part) + + with smtplib.SMTP('smtp.eu.mailgun.org', 587) as server: + server.starttls() + server.login(smtp_user, smtp_password) + server.send_message(msg) + print("Email sent!") + + except Exception as e: + print(f"Error: {e}") + + +if __name__ == "__main__": + db_config = { + 'host': '192.168.145.196', + 'user': 'sql_to_xlsx', + 'password': '2Uce5Uc5', + 'database': 'smsgw_control' + } + + sql_query = "SELECT mcc AS MCC, mnc AS MNC, route, price FROM smsgw_control.routingprices WHERE route = 'M1' AND clientid = '13283';" + + results, headers = perform_query(sql_query, db_config) + + excel_file_name = "pricelist.xlsx" + write_to_excel(results, headers, excel_file_name) + + email_subject = "Your subject" + email_body = "Please find attached bla bla" + recipient = "mark@42tele.com" + sender = "zobbi@sender.com" + + send_email(email_subject, email_body, recipient, sender, excel_file_name) +