본문 바로가기
파이썬코드공유

파이썬으로 이메일 발송하기 초간단 방법(파일첨부 포함)

by 하이어시스템 2024. 4. 4.
반응형

안녕하세요. 하이어시스템입니다.

 

오늘은 파이썬으로 이메일을 발송하는 가장 간단한 방법을 설명드리며 소스코드를 공유드리도록 하겠습니다.

 

메일을 발송하는 방법은 다양하지만 SMTP 서버를 활용하는 방법을 사용하도록 하겠습니다. 다만 Gmail의 SMTP 서버는 보안상 제약사항이 많으므로 아주 간단한 설정으로 끝나는 네이버 SMTP 서버를 사용하도록 하겠습니다.

 

1단계 : 네이버 SMTP 서버 활성화

 

2단계 : 메일발송 함수 작성

def send_email(email_address, email_password, to_email_address, subject, contents, attach_file):
    try:
        server = smtplib.SMTP_SSL('smtp.naver.com', 465)
        server.login(email_address, email_password)
        
        msg = MIMEMultipart()
        msg["From"]    = email_address
        msg["To"]      = to_email_address
        msg["Subject"] = subject
        
        content_part = MIMEText(contents, "plain")
        msg.attach(content_part)
        
        file_name = os.path.basename(attach_file)
        with open(attach_file, 'rb') as file:
            attachment_part = MIMEApplication(file.read())
            attachment_part.add_header('Content-Disposition', 'attachment', filename=file_name)
            msg.attach(attachment_part)        
        server.sendmail(email_address, to_email_address, msg.as_string())
        server.quit()
    except:
        print("메일 발송간 오류가 발생하였습니다.")
        print(traceback.format_exc())

 

3단계 : 함수 호출

log라는 폴더에서 오늘자 로그파일을 첨부하여 naver STMP 서버를 활용하여 gmail로 발송하는 예시

today = datetime.now().strftime("%Y-%m-%d")
log_file_path = os.path.join(os.getcwd(), f'log/{today}.log')
send_email("highersystem@naver.com", 
           "패스워드입력", 
           "highersystem.com@gmail.com",
           "C/S 자동화 프로그램 오류 로그 발송", 
           "오류 로그 자동발송 메일입니다. 로그를 확인하신 후 프로그램을 업데이트 하세요\n\n"+\
           f"-라이선스키:{product_key}\n"+\
           f"-오류발생사이트:{error_mall_list}",
           log_file_path)

 

 

발송결과 확인

반응형