-
Windows 시작/재부팅 시 자동 메일링IT 2020. 5. 1. 01:00반응형
Window 서버를 사용 중인데, 서버가 켜질 때마다 내 mail 주소로 등록된 IP를 보고해 주면 좋겠다는 생각을 하곤 했습니다. Python을 공부하다가 이 문제가 간단한 코딩으로 해결이 되어 그 결과를 여기에 기록합니다.
대부분의 가정에서 인터넷 회선은 유동IP인데요. 원격지에서 내 PC에 연결할 일이 많다거나, 서버를 돌리는 상황에서 도움이 될 만한 Tip인 것 같아요.필요한 사전 준비물은 구글의 gmail 계정입니다. IMAP 설정이 되어 있어야 하고, 2단계 로그인까지 설정하여 앱 비밀번호를 발급받아야 합니다. 계정 비밀번호를 그대로 사용해도 되나, 보안상 유출 우려가 있으니 앱 비밀번호를 발급받아서 사용하는 걸 권합니다.
준비가 완료되면 아래와 같이 Python 코드를 작성하면 됩니다.import smtplib, socket # 메일발송(SMTP), 네트워크 관련 모듈 from email.mime.text import MIMEText # 간단한 email 작성 모듈 from datetime import datetime # 날짜 관련 모듈 def sendMail(ip,time): # 메일 발송 함수 정의 host='smtp.gmail.com' # SMTP 서버명 sender='your-gmail@gmail.com' # 보낼 email주소 receiver='your-mail@kakao.com' # 받을 email주소 contents=str(time)+'-'+ip+'\n\n간략 본문 작성' # 메일 본문 작성 ID=sender PW='앱비밀번호' msg=MIMEText(contents,_charset='euc-kr') # 보낼 메시지 본문 msg['Subject']='간단한 제목 작성' + ip # 제목 (제목 + IP 주소) msg['From']=sender # 발신 주소 msg['To']=receiver # 송신 주소 s=smtplib.SMTP(host,587) # 메일 보내기 세션 생성 s.starttls() # 지메일 TLS 보안설정 s.login(ID,PW) # 지메일 로그인 인증, 앱 비밀번호 사용 s.sendmail(sender,receiver,msg.as_string()) # 메일 보내기 s.quit() # 세션 종료 get_ip=socket.gethostbyname(socket.gethostname()) # IP주소 추출 get_time=datetime.now() # Window 시작 시간 추출 get_time=get_time.strftime('%Y-%m-%d %H:%M:%S') # 시간 표시 형식 정리 sendMail(get_ip,get_time) # 메일 발송 함수 호출
작성 한 코드를 파일로 저장하고 실행했을 때 송신 주소의 메일 저장함에 메일이 온다면 성공입니다. 다음으로 부팅 시 마다 메일을 보내도록 Window 작업 스케줄러에 등록하면 됩니다.
작업 스케줄러 등록과 구글 앱 비밀번호 생성하는 방법은 추후 update하겠습니다.
728x90반응형'IT' 카테고리의 다른 글
Windows 10에 WSL2 설치하기 (0) 2020.05.27 Windows 작업 스케줄러 Script 등록 (0) 2020.05.09 Tipco Spotfire(스팟파이어) 한글 메뉴얼 (0) 2020.04.30 만자로 리눅스 한글 설정 (Manjaro Linux Nabi) (0) 2020.04.29 Hyper-V 에 만자로 리눅스 설치 Tip (0) 2020.04.29