본문으로 건너뛰기
실습하기

이메일 업무 자동화가 왜 필요할까요?

업무를 하다보면 동일한 내용의 이메일을 이름만 바꿔가며 여러 명에게 보내야 하거나, 외부에서 수집한 데이터를 필요한 대상에게 주기적으로 전달해야 하는 경우가 있습니다.

이렇게 반복적인 업무는 불필요한 시간을 많이 소모하며, 단순 작업 중에 실수를 유발할 수 있습니다.

하지만 파이썬 프로그램을 활용하면 이러한 반복적인 이메일 업무를 프로그램을 통해 자동화할 수 있습니다.


파이썬으로 이메일 자동화하기

파이썬에서 이메일 발송을 자동화하기 위해서는 smtplib 라이브러리를 사용하여 SMTP 서버에 연결하고, 이메일을 보내는 코드를 작성해야 합니다.

아래는 파이썬 코드 예시를 사용하여 사용자명과 이메일로 구성된 3명에게 각각 다른 이메일을 보내는 코드 예시입니다.

참고: 코드프렌즈 실습 환경은 이메일 발송이 남용되는 것을 방지하기 위해, 이메일 수신자를 코드프렌즈 가입 이메일로 제한합니다.

아래 코드는 이메일 본문에 사용자의 이름을 자동으로 포함시킵니다.

파이썬으로 사용자별 이메일 자동 전송
# smtplib 라이브러리 불러오기
import smtplib

# 이메일 구성을 위한 라이브러리 불러오기
from email.mime.text import MIMEText

# 이메일 본문과 제목을 구성하기 위한 라이브러리 불러오기
from email.mime.multipart import MIMEMultipart

# 발신자 이메일 설정
sender_email = "sender@example.com"

# 발신자 이메일 비밀번호
password = "your_password"

# 수신자 리스트 (username과 email)
recipients = [
{"username": "Alice", "email": "alice@example.com"},
{"username": "Bob", "email": "bob@example.com"},
{"username": "Charlie", "email": "charlie@example.com"}
]

# SMTP 서버 연결 설정
smtp_server = "smtp.example.com"

# SMTP 서버 포트 번호
# 포트(Port)란?
# 네트워크에서 프로그램이 통신을 위해 사용하는 번호
port = 587

# 이메일 전송 함수
def send_email(username, receiver_email):
# 이메일 제목
subject = "코드프렌즈 업데이트 안내"

# 이메일 본문
body = f"안녕하세요 {username}님, 코드프렌즈 업데이트 소식을 안내드립니다."

# 이메일 구성
msg = MIMEMultipart()

# 이메일 송신자, 수신자, 제목 설정
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject

# 이메일 본문 추가
msg.attach(MIMEText(body, 'plain'))

try:
# SMTP 서버 연결
server = smtplib.SMTP(smtp_server, port)

# TLS(이메일 암호화) 연결
server.starttls()

# 이메일 로그인
server.login(sender_email, password)

# 이메일 메시지를 문자열로 변환
text = msg.as_string()

# 이메일 전송
server.sendmail(sender_email, receiver_email, text)
except Exception as e:
print(f"{username}님에게 이메일 발송 중 에러 발생: {e}")
finally:
server.quit() # 서버 연결 종료

# 각 사용자에게 이메일 발송
for recipient in recipients:
send_email(recipient["username"], recipient["email"])

코드 설명

1. 수신자 리스트

recipients 리스트는 각각 usernameemail로 구성된 딕셔너리 형태로 정의됩니다.

이 리스트에는 이메일을 보낼 3명의 사용자 정보가 포함되어 있습니다.


2. 이메일 전송 함수

send_email 함수는 각 사용자에게 이메일을 보내는 역할을 합니다.

함수는 usernamereceiver_email을 매개변수로 받아, 이메일 제목과 본문에 사용자 이름을 포함시킵니다.


3. 이메일 전송

for 루프를 사용해 recipients 리스트에 있는 각 사용자에게 순차적으로 이메일을 전송합니다.

각 사용자는 자신의 이름이 반영된 이메일을 받게 됩니다.

이 코드를 사용하면 각 사용자에게 맞춤형 이메일을 간편하게 보낼 수 있습니다.

SMTP 서버 주소(smtp.example.com)와 발신자 이메일, 비밀번호를 실제 값으로 변경한 후 실행하면 됩니다.


실습

코드 에디터의 실습 코드에서 receiver_email에 코드프렌즈 가입 이메일을 입력하거나 잘 반영되어 있는지 확인하고, 코드를 실행해보세요.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!