본문 바로가기
카테고리 없음

파이썬 : 이메일 자동으로 보내기(gmail 사용법)

by 조크리 2020. 10. 3.
반응형

이전 글에서 파이썬 스크래핑으로 네이버에서 주식 기사를 찾은 뒤 기사의 제목, url, 신문사 이름을 스크래핑하여 엑셀에 저장했다. 

파이썬 크롤링(웹스크래핑) 네이버 기사 크롤링해서 엑셀에 저장

파이썬 크롤링(웹스크래핑) - 네이버 기사 url과 신문사 크롤링

파이썬 크롤링(웹스크래핑) - 네이버 기사 제목 웹스크래핑

 

 

이번 글에서는 저장한 엑셀 파일을 첨부한 이메일을 자동으로 보내는 기능을 구현해보려한다.

 

 

1. smtplib 패키지 활용하기 

 

메일 보내기는 이미 정해진 틀이 있기 때문에 이 틀에 해당 정보를 넣기만 하면 된다.

아래는 gmail을 이용해서 메일 보내는 코드이다.

아래 코드에는 여러 사람에게 메일 보내는 방법, 첨부파일 보내는 방법도 들어있다.

 

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders


# 보내는 사람 정보
me = "보내는 사람 이메일아이디@gmail.com"
my_password = "비밀번호"

# 로그인하기
s = smtplib.SMTP_SSL('smtp.gmail.com')
s.login(me, my_password)

# 받는 사람 정보 리스트로 작성
emails = ['yunju0514@naver.com', 'yunju0514@gmail.com']
# 여러 사람에게 보낼 for 반복문 작성 
for you in emails:
    # 메일 기본 정보 설정
    msg = MIMEMultipart('alternative')
    msg['Subject'] = "[공유]오늘의 주식 기사"
    msg['From'] = me
    msg['To'] = you

    # 메일 내용 쓰기
    content = "따끈따끈 오늘자 기사가 도착했어요! '주식' 공부의 첫 걸음은 경제 기사 읽기부터! 오늘도 화이팅!"
    part2 = MIMEText(content, 'plain')
    msg.attach(part2)

    # 파일 첨부하기 
    part = MIMEBase('application', "octet-stream")
    with open("네이버 기사 스크래핑.xlsx", 'rb') as file:
        part.set_payload(file.read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', "attachment", filename="주식기사.xlsx")
    msg.attach(part)


    # 메일 보내고 서버 끄기
    s.sendmail(me, you, msg.as_string())
s.quit()

 

하지만 이렇게 해서 run을 하면 gmail의 2단계 인증 때문에 메일이 보내지지 않는다. 

 

2. G-mail 2단계 인증 풀기 

 

2단계 인증을 풀려면 아래의 링크로 들어가서 본인 gmail계정으로 로그인을 해야한다. 

myaccount.google.com/signinoptions/two-step-verification

 

 

로그인을 한 다음에 '보안' 에 들어가서 '구글에 로그인' 에서 '2단계 인증'을 사용 안함 으로 바꾸어야한다. 

 

 

3. 보안 수준이 낮은 앱의 엑세스 '허용'으로 바꾸기

 

그 다음 아래의 링크로 들어가서 '보안 수준이 낮은 앱의 엑세스'를 허용으로 바꾸어 준다. 

 

myaccount.google.com/lesssecureapps

 

4. 파이썬 코드 run을 돌리면 끝~!

 

네이버 메일과 gmail모두 잘 왔다~! 

 

반응형