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 = ( '
' '' '' ) 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)