파이썬으로 매출 보고서를 분석하고 이메일로 발송하기
이번 수업에서는 이전 수업에서 정의한 고객별 매출 데이터
데이터프레임을 분석한 후, 해당 데이터를 기반으로 맞춤형 보고서
를 만들어 이메일을 발송하는 프로그램을 구현해 보겠습니다.
SMPT 연결 구성하기
먼저 이메일 전송을 위한 SMTP 서버
와 포트
, 그리고 이메일 주소
와 비밀번호
를 설정합니다.
# SMTP 서버 설정 smtp_server = "smtp.gmail.com" smtp_port = 587 sender_email = "your_email@gmail.com" password = "your_email_password" # SMTP 서버에 연결 server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # TLS(Transport Layer Security) 암호화 시작 server.login(sender_email, password)
-
smtplib.SMTP()
: SMTP 서버와 포트를 설정합니다. 코드 예시에서는 임의로 Gmail을 사용했지만, 사용하는 이메일 제공자의 설정에 따라 값을 다르게 설정할 수 있습니다. -
starttls()
: 서버와의 통신을 암호화합니다. -
login()
: 이메일 계정으로 로그인합니다.
이메일 본문 작성하기
이제 고객별로 맞춤형 매출 보고서를 텍스트로 구성한 후, 이메일 본문으로 사용할 수 있도록 합니다.
이전에 작성했던 매출 데이터를 활용해 고객별로 이메일을 구성합니다.
def create_email_body(customer_name, monthly_sales): body = f"안녕하세요, {customer_name}님!\n\n" body += "다음은 귀하의 최근 3개월간 매출 요약입니다:\n\n" for _, row in monthly_sales.iterrows(): body += f"{row['년월']}월 매출: {row['매출 금액']}원\n" body += "\n감사합니다.\n" return body
이 함수는 고객의 이름과 매출 데이터를 받아 이메일 본문을 만듭니다.
iterrows()를 사용해 각 고객의 월별 매출 데이터를 반복하며 본문을 작성합니다.
이메일 발송하기
이제 본문을 작성했으니, 각 고객에게 맞춤형 이메일을 발송하는 방법을 알아보겠습니다.
아래 코드는 MIMEText를 이용해 이메일 메시지를 생성하고, SMTP 서버를 통해 발송합니다.
from email.mime.text import MIMEText # 고객별로 이메일 발송 for customer_id, group in monthly_sales.groupby('고객 ID'): customer_name = group['고객 이름'].iloc[0] recipient_email = "customer_email@example.com" # 고객 이메일 주소 email_body = create_email_body(customer_name, group) # 이메일 메시지 생성 msg = MIMEText(email_body) msg['Subject'] = f"{customer_name}님의 월간 매출 보고서" msg['From'] = sender_email msg['To'] = recipient_email # 이메일 발송 server.sendmail(sender_email, recipient_email, msg.as_string()) print(f"{customer_name}님에게 이메일 발송 완료!")
-
MIMEText()
: 이메일의 본문을 생성합니다. 이때 본문은 create_email_body() 함수에서 만든 맞춤형 텍스트를 사용합니다. -
sendmail()
: 작성한 이메일을 고객에게 전송합니다. -
msg['Subject']
: 이메일 제목을 설정합니다.
이 코드를 통해 각 고객에게 맞춤형 매출 보고서를 이메일로 자동 발송할 수 있습니다.
마무리 작업
이제 모든 이메일을 발송했으니, 서버와의 연결을 종료하는 작업이 필요합니다.
아래와 같이 quit()
를 호출하여 SMTP 서버와의 연결을 종료합니다.
# SMTP 서버 연결 종료 server.quit()
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
실행 결과
결과물
문서가 비어 있습니다.
코드를 실행해보세요.