94 lines
2.8 KiB
Python
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) |