.venv\Scripts\activate
[환경설정] 클릭 → [POP3/IMAP 설정] 클릭 → [IMAP/SMTP설정] 클릭 → [사용함] 선택 → [확인] 클릭





Note: - 통신 규약(프로토콜)의 정의 컴퓨터끼리 정보를 주고받기 위해 정해둔 약속이다. 이메일 서비스는 SMTP, POP3, IMAP이라는 규약에 따라 작동한다.
동작 원리 우편물을 우체국이 중계하듯, 이메일도 전용 서버가 역할을 분담한다.
SMTP 서버 (우편집중국): 메일을 보낼 때 사용한다. 작성된 메일을 받아 수신 측으로 전달한다.
POP3 / IMAP 서버 (관할 우체국): 메일을 받을 때 사용한다. 도착한 메일을 보관하고 사용자에게 보여준다.

Note: 1. 발신자의 ID와 비밀번호로 로그인 2. 이메일 작성 3. 보내기 버튼을 눌러 이메일 보내기를 요청. 4. SMTP,POP3, IMAP 프로토콜을 이용하여 각 서버들이 통신을 하고 수신자의 계정에 이메일이 도착하게 된다.
smtplib 라이브러리는 파이썬의 표준 라이브러리 이므로 별도의 설치가 필요없다.import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
SENDER_EMAIL = "발신자이메일@naver.com"
SENDER_PW = "이메일비밀번호"
RECEIVER_EMAIL = "수신자이메일@gmail.com"
msg = MIMEMultipart()
msg["From"] = SENDER_EMAIL
msg["To"] = RECEIVER_EMAIL
msg["Subject"] = "파이썬으로 보내는 테스트 메일"
body = "안녕하세요!\n파이썬 smtplib로 발송한 이메일입니다."
msg.attach(MIMEText(body, "plain", "utf-8"))
SMTP_SERVER = "smtp.naver.com"
SMTP_PORT = 465
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as server:
server.login(SENDER_EMAIL, SENDER_PW)
server.sendmail(SENDER_EMAIL, RECEIVER_EMAIL, msg.as_string())
print("이메일 전송 완료!")
None: 1:
import smtplib— 이메일 발송 기능을 제공하는 라이브러리 2:from email.mime.text import MIMEText— 이메일 본문을 만드는 도구 3:from email.mime.multipart import MIMEMultipart— 제목, 본문, 첨부파일을 한 번에 담는 상자 같은 것 57: 발신자 이메일 주소, 비밀번호, 수신자 이메일 주소 설정 9:12: 이메일 제목과 발신자, 수신자 정보 입력 14MIMEMultipart()— 이메일의 제목·본문·첨부파일을 담을 상자 만들기 1015: 이메일 본문 작성하고 상자에 담기 1718: SMTP 서버 주소와 포트 번호 설정 20~23: SMTP 서버에 접속해서 로그인하고 이메일 전송
구글은 보안 정책상 계정 비밀번호 직접 사용이 불가하므로 앱 비밀번호를 별도로 발급해야 한다.
메일, 기기: Windows 컴퓨터 → 생성SENDER_PW 에 입력import os
from dotenv import load_dotenv
load_dotenv()
SENDER_EMAIL = os.getenv("EMAIL_ADDRESS")
SENDER_PW = os.getenv("EMAIL_PASSWORD")
RECEIVER_EMAIL = os.getenv("RECEIVER_ADDRESS")
None: 1:
import os— 운영체제(컴퓨터)의 환경변수에 접근하는 도구 2:from dotenv import load_dotenv—.env파일을 읽는 도구 4:load_dotenv()—.env파일에 저장된 정보를 메모리에 불러오기 6~8:.env파일에서 저장된 이메일 정보를 불러와 변수에 저장
.env 파일 예시 (프로젝트 루트에 생성):
EMAIL_ADDRESS=발신자이메일@naver.com
EMAIL_PASSWORD=이메일비밀번호
RECEIVER_ADDRESS=수신자이메일@gmail.com
None: -
EMAIL_ADDRESS— 이메일을 보낼 발신자의 주소
EMAIL_PASSWORD— 발신자의 이메일 비밀번호 또는 앱 비밀번호RECEIVER_ADDRESS— 이메일을 받을 수신자의 주소
Warning:
.env파일에는 비밀번호가 들어있으므로.gitignore에.env를 반드시 추가하여 GitHub 등 외부에 절대 업로드되지 않도록 한다.