Auto-commit before push to git.mycloud24.ru

This commit is contained in:
InviteMe Developer
2026-08-28 15:41:39 +03:00
parent 3bd62cc289
commit a69abb948f
26 changed files with 1908 additions and 171 deletions
+23 -2
View File
@@ -6,16 +6,28 @@ from email.utils import formataddr
from pathlib import Path
from flask import current_app, render_template
from app.services.ticket_service import generate_ticket_image
def send_invitation(guest, event_name="Корпоратив", additional_text=""):
"""Отправляет приглашение гостю на email с QR-кодом во вложении."""
def send_invitation(guest, event_name=None, additional_text=""):
"""Отправляет приглашение гостю на email с QR-кодом и билетом во вложении."""
config = current_app.config
if event_name is None:
event_name = guest.event.name if guest.event else "Мероприятие"
msg = MIMEMultipart("related")
msg["Subject"] = f"Приглашение на мероприятие: {event_name}"
msg["From"] = formataddr(("InviteMe", config.get("MAIL_DEFAULT_SENDER", config["MAIL_USERNAME"])))
msg["To"] = guest.email
# Генерируем билет
try:
ticket_path = generate_ticket_image(guest, guest.event)
except Exception as e:
ticket_path = None
current_app.logger.warning(f"Не удалось сгенерировать билет для {guest.email}: {e}")
# HTML-шаблон письма
html_body = render_template(
"email/invitation.html",
@@ -23,6 +35,7 @@ def send_invitation(guest, event_name="Корпоратив", additional_text=""
event_name=event_name,
additional_text=additional_text,
qr_cid="qr_code_image",
ticket_cid="ticket_image" if ticket_path else None,
)
msg.attach(MIMEText(html_body, "html", "utf-8"))
@@ -36,6 +49,14 @@ def send_invitation(guest, event_name="Корпоратив", additional_text=""
img.add_header("Content-Disposition", "inline", filename=guest.qr_filename)
msg.attach(img)
# Прикрепляем билет
if ticket_path and ticket_path.exists():
with open(ticket_path, "rb") as img_file:
img = MIMEImage(img_file.read())
img.add_header("Content-ID", "<ticket_image>")
img.add_header("Content-Disposition", "inline", filename=f"ticket_{guest.token}.png")
msg.attach(img)
# Отправка через SMTP
server = config["MAIL_SERVER"]
port = config["MAIL_PORT"]