SMTP 서버를 사용하여 Django와 이메일을 보내는 방법
Django Environ의 보안 자격 증명 : Django Environ을 사용하여 Environment 변수를 통해 email_host_user 및 email_host_password와 같은 민감한 자격 증명을 관리하여 소스 코드에서 자격 증명의 하드 코딩을 방지합니다.
앱 특정 비밀번호 생성 : Gmail을 사용할 때 2 단계 확인을 활성화하고 앱 비밀번호를 생성하여 기본 비밀번호에 의존하는 대신 Django 메일 전송을 안전하게 인증합니다.
노트
: 프로덕션 웹 사이트에 개인 이메일 서비스를 사용하는 것은 좋은 생각이 아닙니다.
Gmail에 대한 자세한 내용은 제한 - 또는 이메일 제공 업체의 제한 사항을 참조하십시오.
참고 :이 튜토리얼의 전체 코드는 github에서 사용할 수 있습니다. SMTP 서버 및 간단한 메일 전송 프로토콜 이해 수신되는 방법을 적용합니다.)
SMTP 서버에는 항상 고유 주소와 메시지를 보내기위한 특정 포트가 있습니다. 대부분의 경우 587입니다. Django 이메일 보내기의 포트가 어떻게 관련되는지 볼 수 있습니다. 이 예에서는 SMTP 서버를 사용합니다
주소 : smtp.gmail.com 포트 : 587 이제 Django와 함께 이메일을 보낼 수있는 방법을 봅시다. django 프로젝트 만들기 모든 Django 프로젝트에는 프로젝트 종속성을 망치고 싶지 않기 때문에 가상 환경이 있어야합니다. 하나를 만들려면 다음을 실행하십시오 Python Virtual Environments Guide를 확인하십시오.
위의 명령은 이름 .venv라는 이름의 가상 환경을 만듭니다. 이 가상 환경을 활성화하려면 다음을 사용할 수 있습니다. Django는 타사 패키지이므로 PIP를 사용하여 설치해야합니다. - 위의 명령을 사용하면 emailProject라는 이름으로 django 프로젝트를 만들지 만 원하는 이름으로 프로젝트를 만들 수 있습니다. 이제 프로젝트 디렉토리를 입력하고 서버를 실행하십시오.
이것은 Pip Freeze로 확인할 수있는 최신 버전의 Django를 설치합니다. Django 프로젝트를 만들려면 명령 줄 유틸리티 Django-Admin을 호출합니다. Django 서버를 실행 한 후 브라우저에서 http : // localhost : 8000을 방문하십시오. 최신 Django 릴리스 노트가 포함 된 자동 생성 페이지가 표시됩니다. django 이메일 백엔드 구성 이메일 백엔드는 Django와 함께 이메일을 보내는 메커니즘입니다. Django는 기본적으로 django.core.mail.backends.smtp.emailbackend를 사용하여 SMTP 서버에 연결하고 이메일을 보낼 수 있습니다. 환경 (개발 또는 생산)에 따라 요구에 맞는 다른 이메일 백엔드를 선택할 수 있습니다. 이메일을 보내기 전에 설정 파일을 수정해야하므로 아래 명령으로 해당 파일을 찾아 봅시다. 참고 : Simplicity를 위해서는 UNIX (MacOS 또는 Linux) 시스템 명령 만 사용합니다. python <span>-m venv .venv</span>
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사트리 명령은 디렉토리의 파일 구조를 출력합니다. 이 경우 특정 디렉토리 경로를 제공하지 않으므로 프로젝트의 루트 폴더에 있으면 다음과 비슷한 내용을 얻을 수 있습니다. 이 튜토리얼을 통해 지속적으로 수정하는 파일은 emailproject 폴더 내부의 settings.py입니다. 필요한 모든 프로젝트 구성을 보유하고 있으며 사용자 정의 변수를 설정할 수 있습니다. Django Docs가 말한 것처럼“설정 파일은 모듈 수준 변수가있는 파이썬 모듈”입니다. Django와 함께 이메일을 보내는 데 필요한 설정을 살펴 보겠습니다. emailproject/settings.py 파일을 열고 파일 하단에 다음 설정을 붙여 넣습니다. 이 설정 각각을 분석하여 위의 코드를 세분화하겠습니다. 이메일 백엔드 email_backend 설정은 Django 프로젝트가 SMTP 서버와 연결하는 데 사용하는 백엔드를 선언합니다. 이 변수는 이메일을 보내는 데 필요한 모든 매개 변수를 수신하는 smtp.emailbackend 클래스를 가리키고 있습니다. Django 소스 코드에서 직접 클래스 생성자를 살펴 보는 것이 좋습니다. 이 코드가 얼마나 읽을 수 있는지 놀랄 것입니다 참고 :이 클래스는 기본 email_backend이지만 Django 설정에서 명시 적으로 좋은 관행으로 간주됩니다. 다른 모든 이메일 설정은이 이메일 백 클래스의 생성자를 기반으로합니다. 이메일 호스트 <span># CMD </span>.venv<span>\Scripts\activate </span> <span># Power Shell </span>.venv<span>\Scripts\Activate.ps1 </span> <span># WSL </span><span>source .venv/bin/activate</span>
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사email_host 설정은 사용중인 SMTP 서버 도메인을 나타냅니다. 이것은 귀하의 이메일 제공 업체에 따라 다릅니다. 아래는 SMTP 서버 호스트가 3 개의 공통 공급자에 해당하는 테이블입니다. 이메일 제공 업체
SMTP 서버 호스트 우리는 나중에 .env 파일을 사용하여 하드 코딩 된 민감한 키나 사이트 별 구성을 피하기 때문에 지금이 설정을 비워두고 있습니다. 자격 증명을 코드로 직접 설정해서는 안됩니다. 이 문제를 해결하기 위해 Django Environ을 사용할 것입니다이메일 포트
email_port 설정은 대부분의 SMTP 서버의 기본 포트이므로 587로 설정해야합니다. 이것은 개인 이메일 제공 업체의 경우에도 해당됩니다. 이 포트는 이메일 전송의 보안을 보장하기 위해 TLS 암호화와 함께 사용됩니다. 전자 메일 사용 tls TLS (Transport Layer Security) 원래는 email_use_tls 변수를 true로 설정했습니다. 즉, Django는 전송 계층 보안을 사용하여 SMTP 서버에 연결하고 이메일을 보냅니다. (개인 이메일 제공 업체에게는 필수입니다.) 이메일 호스트 사용자 email_host_user 설정은 개인 이메일 주소입니다. Django-Environ을 사용하여 이러한 자격 증명을 모두 설정하므로 지금은 공허하게하십시오. 이메일 호스트 비밀번호 email_host_password 설정은 이메일 계정에서 얻을 앱 비밀번호입니다.이 섹션 바로 다음에 수행 할 프로세스입니다. 같은 이야기 : 나중에 환경 변수를 사용 하므로이 설정을 비워 두십시오. 다른 제공 업체의 경우 그에 따라 설정을 조정할 수 있습니다. 예를 들면 : Outlook 구성 : 야후 구성 : 앱 비밀번호로 Gmail SMTP 서버 설정 "덜 안전한 앱"은 Google에서 더 이상 사용되지 않으므로 이메일을 보내기 위해 Gmail 계정에 연결하는 적절하고 안전한 방법은 앱 비밀번호를 사용하는 것입니다. 앱 비밀번호는 Google 계정에 2 단계 확인을 활성화 한 경우에만 사용할 수 있습니다. 앱 비밀번호를 사용하는 이유는 무엇입니까? 보안 대안 : 기본 비밀번호를 공유하는 대신 앱 비밀번호는 특정 응용 프로그램에 대한 제한된 액세스를 제공합니다. SMTP와 함께 작동합니다 : 앱 비밀번호는 SMTP 액세스에 대한 Gmail의 보안 요구 사항을 준수합니다. 2 단계 검증의 필수 : 2 단계 확인이 활성화되면 앱 비밀번호가 외부 앱이 연결할 수있는 유일한 방법입니다. 1 단계 : 2 단계 검증
를 활성화합니다Google 계정으로 이동하십시오 : https://myaccount.google.com/ 왼쪽 메뉴에서 보안으로 이동하십시오 "Google에 로그인하는 방법"섹션으로 스크롤하십시오. “2 단계 확인”을 클릭하고 화면 지침을 따르십시오. 전화 번호 또는 Authenticator 앱을 사용하여 2 단계 확인을 설정하십시오. 장치로 전송 된 코드로 설정을 확인하십시오. python <span>-m venv .venv</span>
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사<span># CMD </span>.venv<span>\Scripts\activate </span> <span># Power Shell </span>.venv<span>\Scripts\Activate.ps1 </span> <span># WSL </span><span>source .venv/bin/activate</span>
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사2 단계 : 앱 비밀번호를 생성
2 단계 확인이 활성화되면 검색 표시 줄에서 "앱 비밀번호"를 검색하십시오. 거기에 앱 비밀번호의 이름을 입력하고 생성을 클릭하십시오. -
그러면 16 자 앱 비밀번호로 팝업 모달을 제공합니다. 한 번만 표시되므로 어딘가에 저장하십시오. -
다른 이메일 제공 업체를 사용하는 경우 다음 안내서를 읽으십시오. -
Outlook 또는 Hotmail 앱 비밀번호 -
Django Environ을 사용하여 이메일 백엔드 자격 증명을 보호합니다 개발중인 이메일을 보내더라도 소스 코드에 비밀번호를 직접 작성해서는 안됩니다. 이는 GitHub와 함께 버전 제어 시스템을 사용하여 프로젝트를 호스팅 할 때 더욱 중요 해집니다. 사람들이 데이터에 액세스하기를 원하지 않습니다 django-environ을 사용하여이를 방지 할 수있는 방법을 보자. emailproject 디렉토리 (settings.py 파일이있는 위치) 안에 .env 파일을 만듭니다.
야후 앱 비밀번호 이제 .Env 파일을 열고 다음 키 값 쌍을 입력하십시오. 이 파일의 내용을 분해 : email_host : 이메일 제공 업체의 SMTP 서버 주소. 빠른 지침은 위의 이메일 호스트 테이블을 참조하십시오. 이 경우 Gmail SMTP 주소 인 smtp.gmail.com을 사용하고 있습니다. email_host_user : 이메일 주소. email_host_password : 방금 생성 한 앱 비밀번호입니다. 공간이 포함되어 있지 않습니다. .
참고 : 가상 환경이 활성화되어 있는지 확인하십시오이러한 환경 변수를 사용하려면 Django-Eenviron을 설치해야합니다. 이제 settings.py를 enailproject 디렉토리에 위치하고 아래 코드를 사용하십시오. 먼저, 설정 파일 상단에서 Environ 패키지를 가져오고 있습니다. 모든 수입은 처음에 있어야한다는 것을 기억하십시오. 그런 다음 .env에서 사용할 수있는 모든 키 값 쌍이 포함 된 ENV 변수를 만듭니다. env ( 'key') 진술은 우리가 해당 키의 가치를 찾고 있음을 의미합니다. 진행하기 전에 .env 파일을 설정했는지 확인하십시오. 그렇지 않으면 일부 환경 변수가 설정되지 않으면 Django가 부적절하게 구성된 오류가 발생합니다. 참고 : Recepitient_Address는 액세스 할 수있는 주소로 이메일을 보내는 데 사용할 사용자 지정 설정입니다.
git 및 github를 사용하는 경우 .gitignore에 .env 파일을 포함시키는 것을 잊지 마십시오. 당신은 그것을 열고 다음 줄을 추가하면이 작업을 수행 할 수 있습니다 : 마지막으로, 우리는 기사의 육즙이 많은 부분에 도착합니다! 이제 첫 번째 이메일을 Django에 보내야합니다 터미널을 열고 가상 환경을 활성화하고 실행하십시오. 이것은 우리를 위해 이미 구성된 모든 장고 설정이있는 쉘을 생성합니다. 그 새로운 쉘 안에 다음 코드를 붙여 넣으십시오python <span>-m venv .venv</span>
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사우리는 또한 인수를 지정하지 않고 1 라이너를 만들 수 있습니다. python <span>-m venv .venv</span>
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사위의 코드를 분류하겠습니다 : 우리는 django send_mail 함수를 가져옵니다 그런 다음 모든 글로벌 설정과 사이트 별 설정 (Settings.py 파일 내부)을 포함하는 설정 객체를 가져옵니다. 마지막으로, 우리는 필요한 모든 인수를 Send_mail 함수에 전달합니다. 이 기능은 전송 된 이메일 수를 반환합니다.이 경우 1. -
위 내용은 SMTP 서버를 사용하여 Django와 이메일을 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 GO 기반 네트워크 취약점 스캐너는 잠재적 보안 약점을 효율적으로 식별합니다. 속도를 위해 Go의 동시성 기능을 활용하고 서비스 감지 및 취약성 일치를 포함합니다. 그 능력과 윤리를 탐색합시다

CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th

이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오
