본문 바로가기
Data Analysis/Python

[Python] 업무자동화 - 1 : Python으로 Naver 이메일 보내기

by 불탄오징어 2020. 7. 17.
반응형

 

 

 

  데이터 분석 관련 업무를 하다보면 매일 모니터링해야할 지표가 있고 경우에 따라서는 팀내에 공유해야할 일들이 자주 있습니다. 간단한일이라도 쌓이면 시간을 소요하게 되고 반복적으로 해야할 공유 업무를 놓치거나 주요업무에 배분할 시간이 부족할 경우가 생깁니다.

 

  저같은 경우는 Spotfire의 scheduled update 기능과 automation service를 이용해서 모니터링 화면을 만들고 이를 메일을 통해서 팀내 공유하도록 설정했습니다. 매일매일 주요 지표와 누적 진척 현황등을 공유하고 있는데 만약 Spotfire가 없다면 그리고 좀더 간단하고 쉽게 구성할 수 있는 방법이 없을지 찾아보던 중 Python을 통해서 이를 구현해보려합니다.

 

 

첫번째 단게로 Python을 통해 메일을 보내봅니다.

 

 

메일 설정


먼저 메일을 보내기위해 사용할 메일 서버가 필요한데 가장 쉽게 사용가능한 naver 메일을 이용해보겠습니다. 먼저 Naver 메일 설정이 필요하니 Naver 메일로 들어가서 좌측 하단의 환경 설정으로 들어갑니다.

 

 

그후 POP3/SMTP와 IMAP/SMTP 모두 사용함으로 설정합니다.

 

POP3/SMTP 사용에서 사용함으로 설정

 

IMAP/SMTP 사용에서 사용함으로 설정

 

 

Python 코드 작성


다음과 같이 코드를 작성해봅시다.

 

# -*- coding:utf-8 -*-
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

fromMail = ""  	# 발신자 메일 주소
toMail = ""	# 수신자 메일 주소
loginId = ""	# 메일 접속 계정
loginPw = ""	# 메일 접속 비밀번호

msg = MIMEMultipart()   # 메일 객체 생성
msg['Subject'] = 'Python 메일보내기 (test)'
msg['From'] = fromMail
msg['To'] = toMail

contents = MIMEText('Python으로 메일보내기 테스트입니다. ')  # 본문 객체 생성

msg.attach(contents)

smtp = smtplib.SMTP('smtp.naver.com', 587)		# Naver 메일 서버
smtp.ehlo() 
smtp.starttls()
smtp.login(loginId, loginPw)   # 메일서버 접속

smtp.sendmail(fromMail, toMail, msg.as_string())   # 메일 전송

smtp.quit()   # 접속 종료

 

 

 

결과


위의 스크립트를 실행한 결과 제 다음메일주소로 들어온 것을 확인할 수 있습니다.

 

 

 

다음 포스트에서는 간단한 데이터를 담아서 메일을 보내기를 해보려고 합니다.

댓글