- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스) - Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포 - 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
75 lines
4.4 KiB
Python
75 lines
4.4 KiB
Python
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)
|