admin-dashboard-backend/groupTasks/groups/shx-order-voucher-code-acti.../script.py

94 lines
2.8 KiB
Python

import json
import sys
import yaml
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
from libs.utils import utils
utils.move_files_back_from_old_files()
STATIC_PATH = "../../groupsData/shx-order-voucher-code-activated/"
json_object = json.loads(sys.argv[1])
customer_email = json_object["customer_email"]
voucher_code = json_object["voucher_code"]
voucher_type = json_object["voucher_type"]
if (customer_email is None
or voucher_code is None
or voucher_type is None):
print("Missing required parameters")
sys.exit(1)
customer_email = customer_email["value"]
voucher_code = voucher_code["value"]
voucher_type = voucher_type["value"]
def load_email_config(filename):
with open(filename, "r") as f:
config = yaml.safe_load(f)
return config["email"], config["smtp"]
email_config, smtp_config = load_email_config(f"{STATIC_PATH}config.yml")
# extract the email parameters
auth_email = email_config["auth_email"]
from_email_name = email_config["from_email_name"]
from_email = email_config["from_email"]
password = email_config["password"]
# extract the smtp parameters
smtp_server = smtp_config["server"]
smtp_port = smtp_config["port"]
receiver_email = customer_email
# create the email multipart message
msg = MIMEMultipart("alternative")
msg["From"] = f"{from_email_name} <{from_email}>"
msg["To"] = receiver_email
msg["Subject"] = f"{voucher_type} Gutschein als Dankeschön"
# load html content from file
with open(f"{STATIC_PATH}email.txt", "r") as file:
text = file.read()
with open(f"{STATIC_PATH}email.html", "r") as file:
html = file.read()
# replace placeholders with actual values
if voucher_type == "5 €":
message = "Wir haben deine Bewertung überprüft und möchten dir als Dankeschön einen 5 € Gutschein überreichen."
else:
message = "Wir haben deinen Beitrag auf Instagram überprüft und möchten dir als Dankeschön einen 10 € Gutschein überreichen."
html = html.replace("{{MESSAGE}}", message)
html = html.replace("{{VOUCHER_CODE}}", voucher_code)
text = text.replace("{{MESSAGE}}", message)
text = text.replace("{{VOUCHER_CODE}}", voucher_code)
# add text and html part to the email
part1 = MIMEText(text, "plain", "utf-8")
part2 = MIMEText(html, "html", "utf-8")
# Attach the text and html part to the email
msg.attach(part1)
msg.attach(part2)
# connect to the smtp server and send the email
try:
with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:
server.login(auth_email, password)
server.sendmail(from_email, receiver_email, msg.as_string())
print(f"Email sent to {receiver_email} with voucher code {voucher_code} of type {voucher_type}")
except Exception as e:
print(f"Error sending email: {e}")
sys.exit(1)