[python]파이썬: SMTP를 이용한 메일보내기


python에서 gmail로 이메일을 전송하는 방법을 알아보겠습니다.

  • 이메일 전송을 하기 위해서는 SMTP(Simple Mail Transfer Protocol)프로토콜을 사용해야 합니다.



  • smtp 서버 도메인 이름 입력
    • gmail 도메인 이름: smtp.gmail.com
    • port: 587



  • 보안을 설정하기 위해 SMTP연결을 TLS(전송 계층 보안) 모드로 설정합니다. (연결 암호화)



※ 로그인 과정에서 로그인 오류가 발생할 수 있습니다.

※ escape로 인한 SyntaxError


SMTPAuthenticationError


  • 만약 높은 수준의 보안을 유지한채 이메일을 보내고 싶으시다면 앱 비밀번호를 생성해야 합니다.
  • 앱 비밀번호를 생성하기 이전 구글계정에서 2단계 인증을 완료해야 합니다.
  • 2단계 인증을 누르셔서 핸드폰 인증만 해주시면 됩니다.


  • 앱 비밀번호 생성
  • 앱은 메일, 기기는 Windows 컴퓨터를 선택했습니다.
  • 각자의 환경에 맞게 선택하시면 됩니다.
  • 아래의 비밀번로가 생성되면 해당 비밀번호를 로그인 인증부분의 비밀번호로 사용하시면 됩니다.

  • 메일을 보낼 때 메시지의 제목과 본문을 설정하기 위한 모듈

  • 메일의 제목과 본문 내용을 입력합니다.

  • 이메일 전송

  • 이메일 확인
  • 프로그램이 제대로 실행된 것을 확인할 수 있습니다.
전체코드

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

with open("gmail.json", "r", encoding="utf-8") as fp:
    gmail_account = json.load(fp)

session = smtplib.SMTP("smtp.gmail.com", 587)
session.starttls()
session.login(gmail_account["id"], gmail_account["pw"])

msg = MIMEText("내용: content_test")
msg["Subject"] = "제목: subject_test"
session.sendmail("보내는 이메일", "받는 이메일", msg.as_string())

참고문헌

댓글

이 블로그의 인기 게시물

[opencv-python] 이미지 크기조절(resize) 하는 법

[python] selenium close와 quit 차이점

[python]파이썬: csv reader header skip (첫번째 행 무시하기, 안읽기)