[파이썬] 이메일 보내기 - SMTP / MIME ( gmail )

2021. 1. 30. 09:57자동화

728x90

 

 

 

smtplib은 SMTP를 사용하기 위한 모듈이고, MIMEText는 메일을 보낼 때 메시지의 제목과 본문을 설정하기 위한 모듈이다.

 

 

 SMTP  간이 우편 전송 프로토콜 (Simple Mail Transfer Protocol) 의 약자로, 이메일 전송에 사용되는 네트워크 프로토콜이다.

 

 인터넷에서 메일 전송에 사용되는 표준이다. SMTP는 보안과 호환성의 문제로 그대로는 사용하지 않는 경우가 많다.

일반적으로 쓰이는 확장 프로그램은 SMTP-AUTH (송신자 인증 서비스), ESMTP (SASL을 이용한 보안 연결), MIME (non-ascii 데이터 전송 포맷)가 있다.

 

SMTP는 25/tcp 와 587/tcp 포트를 사용하며, SMPTS는 465/tcp 포트를 사용한다.

SMTP는 연결지향적이고, 텍스트 기반으로 작동하는 프로토콜이다. SMTP 클라이언트와 SMTP 서버 사이에 SMTP 세션이 생성되며, 명령행을 이용해 메일을 송수신한다.

 

SMTP 교환은 다음의 세 명령어를 통해 이루어진다.

1. MAIL 명령어 : 수신자 지정

2. RCPT 명령어 : 송신자 지정

3. DATA 명령어 : 메시지 내용의 시작이 되는 부분 - 메시지 헤더와 바디로 구성

 


 

MIME (Multipurpose Internet Mail Extensions) 은 전자우편을 위한 인터넷 표준 포맷이다.

 

 전자우편은 7비트 ASCII 문자를 사용하여 전송되기 때문에, 8비트 이상의 코드를 사용하는 문자나 이진 파일들은 MIME 포맷으로 변환되어 SMTP로 전송된다. 실질적으로 SMTP로 전송되는 대부분의 전자 우편은 MIME 형식이다.

 

 MIMEText 에 보내는 사람의 주소, 받는 사람의 주소, 제목을 추가한다.

위 내용은 MIME의 헤더(header) 에 저장되고, 본문은 바디(body) 부분에 저장된다.

 

 

from email import encoders
from email.mime.text import MIMEText
import smtplib

from_user = 'from@gmail.com'                  # 발신 이메일
pw = ''                                       # 발신 이메일 패스워드 
to_users = 'to@gmail.com'                     # 수신 이메일

subject = '테스트'    
text = '안녕하세요.. 자동 이메일입니다.'      # 내용
euc_text = text.encode('euc-kr')              # 한국어 사용을 위한 인코딩

#------------------------------------------------------------------------
s = smtplib.SMTP('smtp.gmail.com', 587)       # google SMTP서버의 포트번호
s.starttls()                                  # TLS방식으로 보안 접속
s.login(from_user, pw)                        # from_user에 로그인

s.sendmail(from_user, to_users, euc_text)     # 전송 
s.quit()                                      # SMTP 종료

 

 

 

 

 

 

 

반응형