메일 서버가 있어야 테스트 가능
메일 보내기
이번 시간에는 파이썬으로 이메일을 자동으로 보내는 프로그램을 만들어 보겠습니다.
예를 들어 매일 보고서를 보내거나, 안내 메일을 자동으로 보내고 싶을 때 사용할 수 있습니다.
1. 이메일 자동 발송기란?
이메일 자동 발송기는 사람이 직접 메일을 보내지 않아도
파이썬 프로그램이 대신 메일을 보내 주는 프로그램입니다.
쉽게 말하면,
“파이썬이 우체부처럼 이메일을 배달해 주는 프로그램”
이라고 생각하면 됩니다.
2. 이번 프로그램에서 사용할 기능
이번 예제에서는 파이썬 기본 기능인 smtplib를 사용합니다.
사용할 기능은 다음과 같습니다.
- 보내는 사람 이메일
- 받는 사람 이메일
- 이메일 제목
- 이메일 내용
- 메일 서버 접속
- 이메일 발송
3. 프로그램 코드
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 보내는 사람 이메일 정보
sender_email = "your_email@gmail.com"
sender_password = "your_app_password"
# 받는 사람 이메일
receiver_email = "receiver_email@gmail.com"
# 이메일 제목과 내용
subject = "파이썬 이메일 자동 발송 테스트"
body = """
안녕하세요.
이 메일은 파이썬 프로그램으로 자동 발송된 이메일입니다.
오늘도 파이썬 공부 화이팅입니다!
"""
# 이메일 메시지 만들기
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject
# 이메일 본문 추가
message.attach(MIMEText(body, "plain", "utf-8"))
try:
# Gmail SMTP 서버 접속
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
# 로그인
server.login(sender_email, sender_password)
# 이메일 보내기
server.sendmail(sender_email, receiver_email, message.as_string())
print("이메일 발송 성공!")
except Exception as e:
print("이메일 발송 실패!")
print("에러 내용:", e)
finally:
server.quit()
4. 코드 설명
1) 필요한 도구 가져오기
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import는 파이썬에게 필요한 도구를 가져오라는 뜻입니다.
smtplib는 이메일을 보내는 도구입니다.
MIMEText는 이메일 내용을 만드는 도구입니다.
MIMEMultipart는 제목, 보낸 사람, 받는 사람, 내용을 하나로 묶어 주는 도구입니다.
2) 보내는 사람 정보 입력하기
sender_email = "your_email@gmail.com"
sender_password = "your_app_password"
여기에는 내 이메일 주소와 비밀번호를 입력합니다.
단, Gmail은 일반 비밀번호가 아니라
앱 비밀번호를 사용하는 것이 좋습니다.
예시입니다.
sender_email = "abc@gmail.com"
sender_password = "abcd efgh ijkl mnop"
3) 받는 사람 이메일 입력하기
receiver_email = "receiver_email@gmail.com"
메일을 받을 사람의 이메일 주소를 입력합니다.
4) 제목과 내용 만들기
subject = "파이썬 이메일 자동 발송 테스트"
body = """
안녕하세요.
이 메일은 파이썬 프로그램으로 자동 발송된 이메일입니다.
"""
subject는 이메일 제목입니다.
body는 이메일 내용입니다.
5) 이메일 메시지 만들기
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject
이 부분은 이메일 봉투를 만드는 부분입니다.
누가 보내는지,
누가 받는지,
제목이 무엇인지 정합니다.
6) 이메일 내용 넣기
message.attach(MIMEText(body, "plain", "utf-8"))
이메일 안에 글 내용을 넣는 부분입니다.
utf-8을 사용하면 한글도 잘 보낼 수 있습니다.
7) Gmail 서버에 접속하기
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
이 부분은 Gmail 메일 서버에 접속하는 코드입니다.
쉽게 말하면,
“파이썬이 Gmail 우체국에 들어가는 과정”
입니다.
8) 로그인하기
server.login(sender_email, sender_password)
내 이메일 계정으로 로그인합니다.
9) 이메일 보내기
server.sendmail(sender_email, receiver_email, message.as_string())
드디어 이메일을 보내는 부분입니다.
10) 성공 또는 실패 메시지 출력하기
print("이메일 발송 성공!")
메일이 잘 보내지면 성공 메시지가 나옵니다.
문제가 생기면 에러 내용이 출력됩니다.
5. 실행 결과
메일이 성공적으로 보내지면 아래처럼 출력됩니다.
이메일 발송 성공!
받는 사람 이메일함에는 다음과 같은 메일이 도착합니다.
제목: 파이썬 이메일 자동 발송 테스트
안녕하세요.
이 메일은 파이썬 프로그램으로 자동 발송된 이메일입니다.
오늘도 파이썬 공부 화이팅입니다!
6. 주의할 점
이메일 비밀번호를 코드에 그대로 적으면 위험할 수 있습니다.
그래서 실제 프로그램에서는 비밀번호를 따로 관리하는 것이 좋습니다.
또한 Gmail을 사용할 때는 일반 비밀번호 대신
앱 비밀번호를 사용하는 것이 안전합니다.
7. 조금 더 발전시키기
이 프로그램을 조금 더 발전시키면 다음 기능도 만들 수 있습니다.
- 여러 사람에게 이메일 보내기
- 첨부파일 보내기
- HTML 형식 이메일 보내기
- 매일 정해진 시간에 자동 발송하기
- 엑셀에 있는 이메일 주소를 읽어서 단체 메일 보내기
8. 마무리
이번 시간에는 파이썬으로 이메일을 자동 발송하는 프로그램을 만들어 보았습니다.
이메일 자동 발송 기능은 보고서 발송, 알림 메일, 안내 메일 등에 사용할 수 있습니다.
처음에는 코드가 어려워 보일 수 있지만
천천히 보면 결국 아래 순서입니다.
- 보내는 사람 정하기
- 받는 사람 정하기
- 제목과 내용 만들기
- 메일 서버에 로그인하기
- 이메일 보내기
파이썬은 반복되는 일을 자동으로 처리할 수 있어서 정말 편리합니다.
이메일 자동 발송기

'강의 > Python 기초' 카테고리의 다른 글
| Chapter 30. AI 챗봇 만들기 (0) | 2026.06.15 |
|---|---|
| Chapter 29. 웹사이트 데이터 수집기 (0) | 2026.06.15 |
| Chapter 27. PDF 자동 생성기 - PDF 만들기 (0) | 2026.06.15 |
| Chapter 26. 엑셀 자동 보고서 생성기 만들기 (0) | 2026.06.15 |
| Chapter 25. 파일 자동 정리 프로그램 만들기 (0) | 2026.06.15 |