# ========== EMAIL CONFIGURATION ==========
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 465
SENDER_EMAIL = "kooliwissem9@gmail.com"
SENDER_PASSWORD = "glbr rcnm jhis uwoo" # Keep this secure!
# =========================================
def send_ticket_email(ticket_data):
"""
Send email notification for new ticket creation
"""
# Default recipients - modify as needed
recipient_emails = ["kooliwissem9@gmail.com"] # Add more emails here
msg = EmailMessage()
msg["Subject"] = f"🎫 New Ticket #{ticket_data['id']}: {ticket_data['title']} ({ticket_data['priority'].upper()})"
msg["From"] = SENDER_EMAIL
msg["To"] = ", ".join(recipient_emails)
# Text version
msg.set_content(f"""
🎫 NEW TICKET CREATED
Ticket ID: #{ticket_data['id']}
Title: {ticket_data['title']}
Priority: {ticket_data['priority'].upper()}
Status: {ticket_data.get('status', 'OPEN')}
Created: {ticket_data.get('created_at', datetime.now().strftime('%Y-%m-%d %H:%M:%S'))}
Description:
{ticket_data['description']}
---
Please respond to this ticket promptly.
""")
# HTML version
priority_colors = {
'low': '#28a745',
'medium': '#ffc107',
'high': '#fd7e14',
'critical': '#dc3545'
}
color = priority_colors.get(ticket_data['priority'].lower(), '#6c757d')
msg.add_alternative(f"""\
<html>
<body style="font-family: Arial, sans-serif; line-height: 1.6;">
<div style="max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #ddd; border-radius: 10px;">
<div style="background-color: #007bff; color: white; padding: 15px; border-radius: 8px 8px 0 0;">
<h2 style="margin: 0;">🎫 New Ticket Created</h2>
</div>
<div style="padding: 20px;">
<div style="display: flex; justify-content: space-between; margin-bottom: 20px;">
<div>
<strong>Ticket ID:</strong> #{ticket_data['id']}<br>
<strong>Created:</strong> {ticket_data.get('created_at', 'Just now')}
</div>
<div style="background-color: {color}; color: white; padding: 5px 15px; border-radius: 20px; font-weight: bold;">
{ticket_data['priority'].upper()}
</div>
</div>
<div style="margin-bottom: 20px;">
<h3 style="color: #333; margin-bottom: 10px;">{ticket_data['title']}</h3>
<div style="background-color: #f8f9fa; padding: 15px; border-radius: 5px; border-left: 4px solid {color};">
<strong>Description:</strong><br>
{ticket_data['description'].replace('\n', '<br>')}
</div>
</div>
<div style="background-color: #e8f4fd; padding: 15px; border-radius: 5px; border: 1px solid #b6d4fe;">
<strong>📋 Action Required:</strong><br>
Please review and respond to this ticket as soon as possible.
</div>
<hr style="border: none; border-top: 1px solid #eee; margin: 20px 0;">
<div style="font-size: 12px; color: #666; text-align: center;">
This is an automated notification from your ticketing system.
<br>Ticket Status: <strong>{ticket_data.get('status', 'OPEN')}</strong>
</div>
</div>
</div>
</body>
</html>
""", subtype='html')
try:
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as server:
server.login(SENDER_EMAIL, SENDER_PASSWORD)
server.send_message(msg)
print(f"✅ Email sent for Ticket #{ticket_data['id']}")
return True
except Exception as e:
print(f"❌ Failed to send email: {e}")
return False