2020/05/04 - [개발자/Python] - Python (파이썬) 웹 크롤링 기초 - Spark 퀴즈 정보 긁어오기 (Selenium O)
에서 만든 'QuizScrap.csv'파일을 메일로 발송하는 것을 연습합니다.
1. 지메일 로그인 하기
# 3. 만들어낸 데이터를 이메일로 발송하기.
# Step 1. 지메일 로그인 하기.
# SMTP 프로토콜 로드
import smtplib
import getpass
import pickle # 파이썬에 자료를 저장하고 내보내고 하게 해줌.
# 이메일을 간단하게 보낼수 있는 라이브러리 로드
from email.message import EmailMessage
# import smtplib를 활용하는 부분
# GMAIL 메일 설정
smtp_gmail = smtplib.SMTP('smtp.gmail.com', 587)
# 서버 연결을 설정하는 단계
smtp_gmail.ehlo()
# 연결을 암호화
smtp_gmail.starttls()
#로그인 아이디 / 앱 비밀번호 (설정 -> 보안 -> 앱 비밀번호)
myid = getpass.getpass() # 이메일 아이디를 넣는다.
mypw = getpass.getpass() # 앱 비밀번호를 넣는다.
pickle.dump(myid, open('id.pickle', 'wb')) # 내 이메일 ID를 id.pickle로 저장.
pickle.dump(mypw, open('pw.pickle', 'wb')) # 내 앱 비밀번호를 pw.pickle로 저장.
# 이후 위에 로그인 아이디 / 앱 비밀번호는 주석처리하고 pickle로 불러와 사용하기만 하면 된다.
userid = pickle.load(open('id.pickle', 'rb'))
userpw = pickle.load(open('pw.pickle', 'rb'))
# smtp를 이용해 gmail에 로그인
smtp_gmail.login(userid, userpw)
# Step 2. 메일을 보낼 주소 정보 가져와 리스트로 만들기.
# email 보낼 주소가 저장된 csv 파일 불러오기
emaillist = pd.read_csv("./emailaddress.csv", encoding='utf-8')
emaillist
# 이메일 주소정보 리스트 변환
to = emaillist['이메일'].tolist() # 위 emaillist는 데이터프레임이다. '이메일' 컬럼의 값들을 리스트로 만든다.
to
2. 메일 작성하기 (파일 첨부 포함)
# Step 3. 메일 작성하기.
# from email.message import EmailMessage 를 활용하는 부분
# EmailMessage 모듈의 별칭을 msg로 이름을 지정.
msg = EmailMessage()
# 제목 입력
msg['Subject']="퀴즈 정보"
# 내용 입력
msg.set_content("퀴즈정보")
# 보내는 사람 (위에서 이메일 정보는 내가 로그인 하기 위해 이메일 주소를 적은 것이고, 여기서는 발송을 위해 발신인의 이메일을 적는 것이다.)
msg['From']='xxx@gmail.com'
# 받는 사람
msg['To'] = ",".join(to) # 위에서 리스트로 만든 수신인 이메일 목록이 담긴 리스트. 수신인을 ","로 구분하겠다.
# 첨부파일 추가
file = 'QuizScrap.csv'
fp = open(file,'rb') # read binary. open() : 파일을 실제로 읽어오는건 아님. 파일을 선택하는 것.
fp
# 결과 : <_io.BufferedReader name='QuizScrap.csv'>
file_data = fp.read() # read() : 파일을 읽어옴.
file_data
# 결과 : b'spark \xed\x80\xb4\xec\xa6\x88 .... \xeb\xb6\x84\xec\x84\x9d2 ,https://forms.gle/Gxb4y6LfVYiaLu4M7\n'
# 파일을 첨부한다. (파일에 대한 옵션)
msg.add_attachment(file_data,
maintype = 'text',
subtype = 'plain',
filename = file)
# 메일 전송
smtp_gmail.send_message(msg)
smtp_gmail.close()
'개발자 > Python' 카테고리의 다른 글
Python (파이썬) .bat 실행파일 만들기 / Crontab 크론탭 (0) | 2020.05.05 |
---|---|
Python (파이썬) Formatting (포맷팅) (0) | 2020.05.05 |
Python (파이썬) Selenium 셀레니움 (0) | 2020.05.04 |
Python (파이썬) 웹 크롤링 기초 - Spark 퀴즈 정보 긁어오기 (Selenium O) (0) | 2020.05.04 |
Python (파이썬) 크롤링 - 한국 홀리데이 스크랩 (1) | 2020.05.04 |