이메일 업무 자동화가 왜 필요할까요?
업무를 하다보면 동일한 내용의 이메일을 이름만 바꿔가며 여러 명에게 보내야 하거나, 외부에서 수집한 데이터를 필요한 대상에게 주기적으로 전달해야 하는 경우가 있습니다.
이렇게 반복적인 업무는 불필요한 시간을 많이 소모하며, 단순 작업 중에 실수를 유발할 수 있습니다.
하지만 파이썬 프로그램을 활용하면 이러한 반복적인 이메일 업무
를 프로그램을 통해 자동화할 수 있습니다.
파이썬으로 이메일 자동화하기
파이썬에서 이메일 발송
을 자동화하기 위해서는 smtplib
라이브러리를 사용하여 SMTP 서버에 연결하고, 이메일을 보내는 코드를 작성해야 합니다.
smtplib 라이브러리는 pip install smtplib
명령어로 컴퓨터에 설치할 수 있습니다.
아래는 파이썬 코드 예시를 사용하여 사용자명과 이메일로 구성된 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
리스트는 각각 username
과 email
로 구성된 딕셔너리 형태로 정의됩니다.
이 리스트에는 이메일을 보낼 3명의 사용자 정보가 포함되어 있습니다.
2. 이메일 전송 함수
send_email
함수는 각 사용자에게 이메일을 보내는 역할을 합니다.
함수는 username
과 receiver_email
을 매개변수로 받아, 이메일 제목과 본문에 사용자 이름을 포함시킵니다.
3. 이메일 전송
for
루프를 사용해 recipients
리스트에 있는 각 사용자에게 순차적으로 이메일을 전송합니다.
각 사용자는 자신의 이름이 반영된 이메일을 받게 됩니다.
이 코드를 사용하면 각 사용자에게 맞춤형 이메일을 간편하게 보낼 수 있습니다.
SMTP 서버 주소(smtp.example.com
)와 발신자 이메일, 비밀번호를 실제 값으로 변경한 후 실행하면 됩니다.
실습
코드 에디터의 실습 코드에서 receiver_email
에 코드프렌즈 가입 이메일을 입력하거나 잘 반영되어 있는지 확인하고, 코드를 실행해보세요.
코드를 실행하면 테스트 이메일이 코드프렌즈 가입 이메일로 전송됩니다.
파이썬에서 SMTP 프로토콜을 활용해 이메일을 발송할 때, 가장 대중적으로 사용하는 라이브러리는 무엇일까요?
smtpgo
smtplive
smtplib
python-smtp
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
실행 결과