smtplib는 「파이썬으로 이메일을 발송하는」 표준 라이브러리입니다.
알림·보고서 자동 전송·뉴스레터 같은 자동화의 기본 도구.
SMTP 서버에 직접 연결해 메일을 보냅니다.
기본 흐름.
import smtplib, ssl.
context = ssl.create_default_context().
with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as s: s.login(email, app_password); s.sendmail(from_addr, to_addr, msg).
메시지 구성 — email.message.
from email.message import EmailMessage.
msg = EmailMessage().
msg["Subject"] = "보고서".
msg["From"] = "...".
msg["To"] = "...".
msg.set_content("본문 텍스트").
msg.add_attachment(open("file.pdf", "rb").read(), maintype="application", subtype="pdf", filename="report.pdf").
Gmail 사용 시.
일반 비밀번호로 안 됨 — 「앱 비밀번호」를 별도 발급해야 합니다.
구글 계정 보안 설정에서 2단계 인증 활성화 → 앱 비밀번호 생성 → 이걸로 로그인.
노출되면 즉시 폐기 가능.
프로덕션은 외부 서비스.
SendGrid·Mailgun·AWS SES 같은 전문 서비스가 도달률·통계·반송 처리·DKIM/SPF 설정까지 다 해 줍니다.
회사 메일 시스템은 거의 이런 서비스 위에서 운영.
smtplib는 개인 자동화·소규모용.
한 줄 요약
smtplib + EmailMessage로 SMTP 메일 전송, 첨부 포함.
Gmail은 앱 비밀번호 필수, 프로덕션은 SendGrid·Mailgun 같은 전문 서비스를 권장합니다.
더 알아볼 것
- MIME — 멀티파트 메일 구조
- HTML 메일 — set_content + add_alternative
- 바운스 처리·도달률