Gmail SMTP 설정으로 Django에서 이메일 보내기

박병현·2024년 6월 2일
0

SMTP 서버란 무엇인가?

1. SMTP란?

SMTP(송신 메일 전송 프로토콜, Simple Mail Transfer Protocol)는 이메일을 송신하기 위해 사용되는 인터넷 표준 통신 프로토콜입니다. SMTP 서버는 이메일 클라이언트(예: 아웃룩, 썬더버드, 웹메일 등)에서 작성한 이메일을 수신자의 이메일 서버로 전송하는 역할을 합니다.

1.1 SMTP의 동작 원리

  • 이메일 클라이언트에서 SMTP 서버로 연결.
  • SMTP 서버는 수신자의 이메일 서버로 메일을 전달.
  • 수신자의 이메일 서버는 수신자 메일함에 메일을 저장.

1.2 SMTP 서버의 주요 기능

  • 이메일 전송 및 수신
  • 이메일 큐잉 및 리트라이
  • 인증 및 암호화

2. Gmail 앱 비밀번호 만들기

2.1 앱 비밀번호 생성

  1. Google 계정에 로그인.

  2. "보안" 섹션으로 이동.

  3. "Google에 로그인"에서 "앱 비밀번호" 선택.

  4. 계정 비밀번호를 입력하고, "앱 비밀번호" 생성 화면으로 이동.
    (또는 아래와 같이 검색을 수행하여 "앱 비밀번호" 생성 화면으로 이동.

  5. 앱 및 기기 선택 후 "생성" 클릭.

  6. 생성된 비밀번호를 기록해 둡니다.

3. SMTP 서버 테스트 (GMass 사용)

3.1 GMass에서 SMTP 테스트

  1. GMass SMTP 테스트 페이지로 이동.

  2. 테스트 양식에 다음 정보 입력:

    • SMTP 서버: smtp.gmail.com

    • SMTP 포트: 587(추천) 또는 465

      		> 포트 465: SSL(Secure Sockets Layer)을 통한 암호화된 이메일 전송에 사용됩니다. 초기에는 SSL용 포트로 사용되었으나, 공식적으로는 더 이상 SMTP에 사용되지 않습니다. 그러나 여전히 많은 서버와 클라이언트가 이 포트를 지원합니다.
      		> 포트 587: TLS(Transport Layer Security)를 통한 이메일 전송에 사용되는 표준 포트입니다. 현재 대부분의 SMTP 서버와 클라이언트는 이 포트를 사용하여 안전하게 이메일을 전송합니다.
    • SSL 사용 여부:

    • 사용자 이름: Gmail 이메일 주소

    • 비밀번호: 생성한 앱 비밀번호 (공백을 제외한 16글자)

  3. "테스트" 버튼 클릭.

  4. 성공 여부 확인.

    크게 오류가 없다면, 성공한것임.

4. Django로 이메일 보내기

4.1 Django 설정

  1. settings.py 파일에서 이메일 설정 추가:
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True
    EMAIL_HOST_USER = 'your_email@gmail.com'
    EMAIL_HOST_PASSWORD = 'your_app_password' # 단, 공백을 제외한 16글자.

4.2 이메일 전송 함수 작성

  1. Django 뷰 또는 스크립트에서 이메일 전송 코드 작성:

    from django.core.mail import send_mail
    
    def send_test_email():
        send_mail(
            '제목',
            '본문 내용',
            'your_email@gmail.com',
            ['recipient@example.com'],
            fail_silently=False,
        )

4.3 이메일 전송 테스트

  1. Django 서버를 실행하고, 이메일 전송 함수를 호출하여 테스트.

참고링크 : https://www.youtube.com/watch?v=kTcmbZqNiGw

profile
AI Developer

0개의 댓글

관련 채용 정보