기타

[Python] SMTP

H E E 2022. 6. 8. 15:02
728x90

SMTP란?

  • 간이 전자 우편 전송 프로토콜(Simple Mail Transfer Protocol)
  • 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜이다.
  • TCP 포트 번호는 25번
  • 텍스트 기반의 프로토콜로 요구/응답 메시지 뿐만 아니라 모든 문자가 7bit ASCII로 되어야 한다는 규정이 있다.
  • 문자 표현에 8bit 이상의 코드를 사용하는 언어나 첨부파일, 바이너리 등은 마임(MIME) 방식을 이용해 7bit로 변환하여 전달한다.

 

SMTP 명령

명령어 내용
HELO SMTP를 식별하고 대화를 시작한다.
(일반적으로 클라리언트의 도메인, IP 주소를 명령과 함께 전송)

ex) HELO test.com
MAIL FROM 보낸이 메일주소 지정

ex) MAIL FROM: <test@gmail.com>
RCPT TO 받는이 메일주소 지정

ex) RCPT TO: <test123@naver.com>
DATA 본문 내용의 전송 시작
.
메시지의 끝
RSET 입력 초기화
QUIT SMTP 연결 종료 (Close Connect)

 


테스트

import smtplib
from email.mime.text import MIMEText

me = 'test1234@gmail.com' # 보낸이
you = ['test123@gmail.com'] # 메일을 받을 사람들 
message = '내용' # 본문 내용

smtp = smtplib.SMTP('smtp.gmail.com', 587)
smtp.ehlo()
smtp.starttls()
smtp.login(me, 'gmail 앱 비밀번호') # 메일을 보낼 ID 로그인

msg = MIMEText(message)
msg['Subject'] = '메일제목'
msg['TO'] = ','.join(you) # you 배열을 , 로 나눔
msg['FROM'] = me

smtp.sendmail(me, you, msg.as_string())

smtp.quit()
728x90
반응형