"""
GUARDiA 이메일 발송 v2 — 스팸 점수 최소화
- Reply-To 헤더 추가
- List-Unsubscribe 헤더 추가
- 적절한 Message-ID
- 텍스트 본문 충실히 작성
- HTML 과도한 스타일 제거
"""
import smtplib, socket
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formatdate, make_msgid
from datetime import datetime

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

text = (
    'GUARDiA ITSM 이메일 발송 테스트\n\n'
    '안녕하세요,\n\n'
    '(주)지오정보기술 GUARDiA ITSM 시스템에서 발송한 테스트 메일입니다.\n\n'
    '[발송 정보]\n'
    '- 발신자: guardia@zioinfo.co.kr\n'
    '- 발신 서버: mail.zioinfo.co.kr (101.79.17.164)\n'
    '- 발송 시각: ' + NOW + ' KST\n'
    '- 인증: SPF PASS + DKIM 서명\n\n'
    '[GUARDiA ITSM 이메일 알림 기능]\n'
    '- SR(서비스 요청) 접수 및 완료 알림\n'
    '- 인시던트 발생 긴급 알림\n'
    '- SLA 위반 경고 알림\n'
    '- 배포 완료/실패 알림\n'
    '- 라이선스 만료 알림\n\n'
    '이 메일은 GUARDiA ITSM 시스템 테스트 목적으로 발송되었습니다.\n\n'
    '--\n'
    '(주)지오정보기술\n'
    'GUARDiA ITSM v2.0\n'
    'guardia@zioinfo.co.kr\n'
    'http://101.79.17.164:8001\n'
)

html = (
    '<!DOCTYPE html>\n'
    '<html lang="ko">\n'
    '<head>\n'
    '  <meta charset="UTF-8">\n'
    '  <meta name="viewport" content="width=device-width, initial-scale=1.0">\n'
    '  <title>GUARDiA ITSM</title>\n'
    '</head>\n'
    '<body style="margin:0;padding:20px;font-family:Arial,sans-serif;background:#f5f5f5;color:#333">\n'
    '<table width="100%" cellpadding="0" cellspacing="0" border="0">\n'
    '<tr><td align="center">\n'
    '<table width="560" cellpadding="0" cellspacing="0" border="0" style="background:#ffffff;border-radius:6px;overflow:hidden">\n'

    '<!-- 헤더 -->\n'
    '<tr><td style="background:#1a3a6b;padding:20px 30px">\n'
    '  <h1 style="color:#ffffff;margin:0;font-size:18px;font-weight:bold">GUARDiA ITSM</h1>\n'
    '  <p style="color:#aac4e8;margin:4px 0 0;font-size:12px">(주)지오정보기술 AI 인프라 자율 운영 플랫폼</p>\n'
    '</td></tr>\n'

    '<!-- 본문 -->\n'
    '<tr><td style="padding:24px 30px">\n'
    '  <h2 style="color:#1a3a6b;font-size:16px;margin:0 0 12px">이메일 발송 테스트</h2>\n'
    '  <p style="margin:0 0 16px;line-height:1.6">안녕하세요,<br>\n'
    '  (주)지오정보기술 GUARDiA ITSM 시스템 테스트 메일입니다.</p>\n'

    '  <table width="100%" cellpadding="8" cellspacing="0" border="0" style="border-collapse:collapse;font-size:13px;margin-bottom:16px">\n'
    '    <tr style="background:#f8f8f8">\n'
    '      <td style="border:1px solid #e0e0e0;font-weight:bold;color:#555;width:32%">발신자</td>\n'
    '      <td style="border:1px solid #e0e0e0;color:#333">guardia@zioinfo.co.kr</td>\n'
    '    </tr>\n'
    '    <tr>\n'
    '      <td style="border:1px solid #e0e0e0;font-weight:bold;color:#555">발송 시각</td>\n'
    '      <td style="border:1px solid #e0e0e0;color:#333">' + NOW + ' KST</td>\n'
    '    </tr>\n'
    '    <tr style="background:#f8f8f8">\n'
    '      <td style="border:1px solid #e0e0e0;font-weight:bold;color:#555">SPF 인증</td>\n'
    '      <td style="border:1px solid #e0e0e0;color:#2e7d32">PASS</td>\n'
    '    </tr>\n'
    '    <tr>\n'
    '      <td style="border:1px solid #e0e0e0;font-weight:bold;color:#555">DKIM 서명</td>\n'
    '      <td style="border:1px solid #e0e0e0;color:#2e7d32">서명됨</td>\n'
    '    </tr>\n'
    '  </table>\n'

    '  <p style="margin:0;font-size:13px;color:#666;line-height:1.6">'
    'GUARDiA ITSM은 SR 접수, 인시던트 알림, SLA 경고, 배포 알림 등을 이메일로 전송합니다.</p>\n'
    '</td></tr>\n'

    '<!-- 푸터 -->\n'
    '<tr><td style="background:#f8f8f8;padding:14px 30px;border-top:1px solid #e0e0e0;text-align:center">\n'
    '  <p style="margin:0;font-size:11px;color:#999">\n'
    '    (주)지오정보기술 | guardia@zioinfo.co.kr | http://101.79.17.164:8001\n'
    '  </p>\n'
    '</td></tr>\n'
    '</table>\n'
    '</td></tr>\n'
    '</table>\n'
    '</body>\n'
    '</html>\n'
)

msg = MIMEMultipart('alternative')
msg['Subject']          = '[GUARDiA] 이메일 발송 테스트 - ' + NOW
msg['From']             = '(주)지오정보기술 GUARDiA <' + FROM + '>'
msg['To']               = TO
msg['Reply-To']         = FROM
msg['Date']             = formatdate(localtime=True)
msg['Message-ID']       = make_msgid(domain=DOMAIN)
msg['List-Unsubscribe'] = '<mailto:' + FROM + '?subject=unsubscribe>'
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 발송 완료')
        print('수신: ' + TO)
        print('시각: ' + NOW + ' KST')
except Exception as ex:
    print('FAIL:', ex)
