가이드라인

파이썬으로 매출 보고서를 분석하고 이메일로 발송하기

이번 수업에서는 이전 수업에서 정의한 고객별 매출 데이터 데이터프레임을 분석한 후, 해당 데이터를 기반으로 맞춤형 보고서를 만들어 이메일을 발송하는 프로그램을 구현해 보겠습니다.


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)
  1. smtplib.SMTP() : SMTP 서버와 포트를 설정합니다. 코드 예시에서는 임의로 Gmail을 사용했지만, 사용하는 이메일 제공자의 설정에 따라 값을 다르게 설정할 수 있습니다.

  2. starttls() : 서버와의 통신을 암호화합니다.

  3. 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}님에게 이메일 발송 완료!")
  1. MIMEText() : 이메일의 본문을 생성합니다. 이때 본문은 create_email_body() 함수에서 만든 맞춤형 텍스트를 사용합니다.

  2. sendmail() : 작성한 이메일을 고객에게 전송합니다.

  3. msg['Subject'] : 이메일 제목을 설정합니다.

이 코드를 통해 각 고객에게 맞춤형 매출 보고서를 이메일로 자동 발송할 수 있습니다.


마무리 작업

이제 모든 이메일을 발송했으니, 서버와의 연결을 종료하는 작업이 필요합니다.

아래와 같이 quit()를 호출하여 SMTP 서버와의 연결을 종료합니다.

SMTP 서버 종료
# SMTP 서버 연결 종료 server.quit()

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과

입력 데이터/결과물

결과물

문서가 비어 있습니다.

코드를 실행해보세요.