Python3을 사용하여 이메일 보내기

신원근·2023년 11월 26일
0

저번 포스팅에서 왜 이 프로젝트를 시작 했는지에 대한 개요를 확인할 수 있습니다.

📌 이론

  • SMTP(Simple Mail Transfer Protocol)는 네트워크를 통해 이메일을 보내는 기술의 표준이다.
    1) 클라이언트의 메일이 서버에 전송될 때
    2) 서버간 메일이 이동할 때

  • 기존에는 기업 차원에서 많이 사용되었으나 요즘은 Python으로 쉽게 프로토콜에 접근하여 이메일을 보낼 수 있음.

  • Python에서 smtplib 모듈을 사용하여 Gmail에 접속하여 이메일 참조 및 전송이 가능함.

  • Gmail은 보안을 위해 2단계 인증을 설정해야 한다.


📌 환경 설정

  • Gmail 앱 비밀번호 설정
    • 2단계 인증이 설정이 되어있다면 구글 계정의 보안 섹션으로 이동한다.
    • 2단계 인증을 들어가서 밑에 내리면 앱 비밀번호 섹션이 나오게 도니다.
    • 해당 페이지로 들어가 App name을 입력한 후 만들기를 누르면 된다.
    • 누르면 팝업창으로 앱 비밀번호 16자리가 나오는데 이 때 한번 보여주고 없어지니 기록을 잘해야된다.
    • 이후, Python코드에 해당 비밀번호를 기록한다.

📌 Python 코드 실행

import smtplib
from email.mime.text import MIMEText

#587포트 및 465포트 존재
smtp = smtplib.SMTP('smtp.gmail.com', 587)

smtp.ehlo()

smtp.starttls()

#로그인을 통해 지메일 접속
smtp.login('앱비밀번호를 설정한 이메일', '앱비밀번호')

#내용을 입력하는 MIMEText => 다른 라이브러리 사용 가능
msg = MIMEText('내용 : 본문 내용')
msg['Subject'] = '제목: 파이썬으로 gmail 보내기'

#이메일을 보내기 위한 설정(Cc도 가능)
smtp.sendmail('보내는 이메일(login한 이메일)', '받는 이메일', msg.as_string())

#객체 닫기
smtp.quit()
  • 실행 결과
  • 만약, 잘못된 비밀번호 혹은 이메일을 사용한다면 다음과 같은 에러가 나온다.
profile
고려대 세종 IA-AI Sec Lab 학부연구생, 석박통합과정(진)

0개의 댓글