본문 바로가기
Python

파이썬으로 구글 Gmail 보내기 1편. SMTP의 개념과 구글 앱 비밀번호 발급받기

by YJHTPII 2022. 6. 10.
반응형

https://coding-kindergarten.tistory.com/204

 

[python/smtplib] 파이썬으로 구글 Gmail 보내기 1편. SMTP의 개념과 구글 앱 비밀번호 발급받기

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다. 코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석 등의 다양한 패키지까지 초보자도 알기 쉽도

coding-kindergarten.tistory.com

 

 

 

오늘은 파이썬으로 구글의 Gmail을 사용하는 방법에 대해서 공부해보겠습니다.

 

구글의 보안이 철저해서 별도의 설정 없이는 오늘 배울 smtplib 모듈을 제대로 다룰 수 없으므로,

간단하게 SMTP의 개념을 알아본 후, 구글에서 '2단계 인증'과 '앱 비밀번호' 설정을 함께 진행해보겠습니다.

 


1. SMTP의 개념과 smtplib 모듈 소개

 

파이썬에서 이메일을 보내기 위해서는 파이썬 내장 라이브러리(PIL)의 smtplib와 email 모듈을 사용합니다.

 

 

여기서 smtplib의 SMTP(Simple Mail Transfer Protocol)는 메일을 보내는데 사용되는 프로토콜입니다.

 

출처. 네이버 블로그_Life in Hong Kong

*프로토콜(Protocol)이란?
정보기기 사이에서 통신을 통한 정보 교환이 필요한 경우 이러한 통신을 원활하게 하기 위해 사전에 정의한 여러 통신 규칙과 방법에 대한 약속인 통신 규약을 의미합니다. 

 

이 SMTP 사용법만 익힌다면, 우리가 자주 사용하는 구글, 네이버, 다음, 아웃룩 등의 메일을 자동화 할 수 있답니다.

 

# SMTP 서버 정보

smtp_info = {      
    'gmail.com': ('smtp.gmail.com', 587),
    'naver.com': ('smtp.naver.com', 587),
    'daum.net': ('smtp.daum.net', 465),
    'hanmail.net': ('smtp.daum.net', 465),
    'nate.com': ('smtp.mail.nate.com', 465),
    'outlook.com': ('smtp.outlook.com', 587),
    }

 

참고로 SMTP 서버의 암호화 방식에 따라 TLS 혹은 SSL을 사용하는데, TLS는 포트 587을, SSL은 465를 사용합니다.

(이 부분은 추후에 다시 자세히 다루겠습니다)

 

SMTP에 대한 개념 설명은 여기까지 하고, 앞서 언급했던 Gmail 설정을 함께 진행해보겠습니다.

 

2. Gmail 계정 설정

 

당연한 이야기겠지만 Gmail을 사용하기 위해서는 구글 계정이 있으셔야 합니다. 구글 계정을 로그인 한 후, 아래의 그림을 따라서 순서대로 클릭 및 입력을 해주세요.

 

 

3. 메일 보내기 기초

 

설정이 잘 되었다면 아래의 코드를 실행했을 때, 메일이 자동으로 보내지는 것을 확인 하실 수 있답니다.

 

자세한 내용은 다음 시간에 이어서 설명 드리겠습니다.

 

import smtplib
from email.mime.text import MIMEText

smtp = smtplib.SMTP('smtp.gmail.com', 587)

smtp.ehlo()

smtp.starttls()

smtp.login('xxx@gmail.com', '발급받은 앱 비밀번호')

msg = MIMEText('내용 : 본문 내용')
msg['Subject'] = '제목: 파이썬으로 gmail 보내기'

smtp.sendmail('발신 할 메일 주소', '수신 받을 메일 주소', msg.as_string())

smtp.quit()

 

감사합니다.


<참고 문서>

 

1. SMTP, IMAP, POP3의 개념

https://m.blog.naver.com/ijoos/221742035684

 

2. 파이썬으로 이메일 보내기

https://coblin.xyz/23

반응형

댓글