import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime

TO   = 'ythong86@gmail.com'
FROM = 'guardia@zioinfo.co.kr'
NOW  = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

text = (
    'GUARDiA ITSM 이메일 발송 테스트\n\n'
    '발신 서버: mail.zioinfo.co.kr (101.79.17.164)\n'
    '발신자: guardia@zioinfo.co.kr\n'
    '발송 시각: ' + NOW + ' KST\n'
    '인증: SPF PASS + DKIM 서명\n\n'
    'zio 서버 Postfix + OpenDKIM이 정상 작동 중입니다.\n\n'
    '(주)지오정보기술 | GUARDiA ITSM v2.0\n'
    'http://101.79.17.164:8001\n'
)

html = (
    '<!DOCTYPE html><html lang="ko"><head><meta charset="UTF-8"></head>'
    '<body style="font-family:sans-serif;background:#f0f2f5;padding:30px 20px;margin:0">'
    '<div style="max-width:560px;margin:0 auto;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.1)">'
    '<div style="background:#1a3a6b;padding:24px 32px">'
    '<h1 style="color:#fff;margin:0;font-size:20px">🛡️ GUARDiA ITSM</h1>'
    '<p style="color:#aac4e8;margin:4px 0 0;font-size:12px">(주)지오정보기술 AI 인프라 자율 운영 플랫폼</p>'
    '</div>'
    '<div style="padding:28px 32px">'
    '<h2 style="color:#1a3a6b;margin:0 0 14px">📧 이메일 발송 테스트</h2>'
    '<div style="background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:14px 18px;margin-bottom:20px">'
    '<p style="color:#166534;font-weight:700;margin:0 0 4px">✅ 발송 성공</p>'
    '<p style="color:#475569;font-size:12px;margin:0">SPF + DKIM 인증을 통과하여 발송되었습니다.</p>'
    '</div>'
    '<table style="width:100%;border-collapse:collapse;font-size:13px">'
    '<tr style="background:#f8fafc"><td style="padding:9px 14px;font-weight:600;color:#64748b;border:1px solid #e2e8f0;width:32%">발신 서버</td><td style="padding:9px 14px;border:1px solid #e2e8f0">mail.zioinfo.co.kr (101.79.17.164)</td></tr>'
    '<tr><td style="padding:9px 14px;font-weight:600;color:#64748b;border:1px solid #e2e8f0">발신자</td><td style="padding:9px 14px;border:1px solid #e2e8f0">guardia@zioinfo.co.kr</td></tr>'
    '<tr style="background:#f8fafc"><td style="padding:9px 14px;font-weight:600;color:#64748b;border:1px solid #e2e8f0">발송 시각</td>'
    '<td style="padding:9px 14px;border:1px solid #e2e8f0">' + NOW + ' KST</td></tr>'
    '<tr><td style="padding:9px 14px;font-weight:600;color:#64748b;border:1px solid #e2e8f0">SPF 인증</td><td style="padding:9px 14px;border:1px solid #e2e8f0"><span style="background:#dcfce7;color:#16a34a;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600">✅ PASS</span></td></tr>'
    '<tr style="background:#f8fafc"><td style="padding:9px 14px;font-weight:600;color:#64748b;border:1px solid #e2e8f0">DKIM 서명</td><td style="padding:9px 14px;border:1px solid #e2e8f0"><span style="background:#dcfce7;color:#16a34a;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600">✅ 서명됨</span></td></tr>'
    '</table>'
    '<div style="margin-top:20px;padding:14px 18px;background:#eff2ff;border-radius:8px;border:1px solid #c7d2fe">'
    '<p style="color:#1a3a6b;font-weight:700;margin:0 0 8px;font-size:13px">🤖 GUARDiA ITSM 알림 기능</p>'
    '<ul style="color:#475569;font-size:12px;margin:0;padding-left:18px;line-height:2">'
    '<li>SR 접수/완료 알림</li>'
    '<li>인시던트 긴급 알림</li>'
    '<li>SLA 위반 경고</li>'
    '<li>배포 완료/실패 알림</li>'
    '<li>라이선스 만료 알림</li>'
    '</ul></div>'
    '</div>'
    '<div style="background:#f8fafc;padding:14px 32px;border-top:1px solid #e2e8f0;text-align:center;font-size:11px;color:#94a3b8">'
    'GUARDiA ITSM v2.0 | (주)지오정보기술 | guardia@zioinfo.co.kr'
    '</div></div></body></html>'
)

msg = MIMEMultipart('alternative')
msg['Subject'] = '[GUARDiA] SMTP 이메일 발송 테스트 - ' + NOW
msg['From']    = 'GUARDiA ITSM <' + FROM + '>'
msg['To']      = TO
msg['X-Mailer'] = 'GUARDiA ITSM v2.0'
msg.attach(MIMEText(text, 'plain', 'utf-8'))
msg.attach(MIMEText(html, 'html',  'utf-8'))

try:
    with smtplib.SMTP('localhost', 25, timeout=15) as smtp:
        smtp.ehlo('mail.zioinfo.co.kr')
        smtp.sendmail(FROM, [TO], msg.as_string())
        print('OK 발송 완료 - ythong86@gmail.com 수신함을 확인하세요!')
        print('발신: ' + FROM + ' → ' + TO)
        print('시각: ' + NOW + ' KST')
except Exception as ex:
    print('FAIL:', ex)
