본문 바로가기

여기저기 쓰이는 짧은 실용함수/파이썬

[파이썬] 첨부파일과 함께 메일 보내기

#사전 준비사항

1. 구글 계정

2. 16자리 앱 비밀번호

yanoos.tistory.com/9<<앱 비밀번호 발급은 여기를 참고해주세요

 

[파이썬] 메일 보내기

파이썬 프로그램으로 메일을 보내봅시다. 코드를 작성하기에 앞서 파이썬으로 메일을 보내려면 먼저 해둬야 하는 작업이 있습니다. 바로 16자리 앱 비밀번호 발급 받기 입니다. 1.   구글 계정

yanoos.tistory.com


sendEmail을 여러분의 구글 메일 주소로 변경해주세요

recvEmail을 수신자의 이메일 주소로 변경해주세요

password를 여러분의 16자리 앱 비밀번호로 변경해주세요

(yanoos.tistory.com/9<<앱 비밀번호 발급은 여기를 참고해주세요)

 

총 네 개의 파일(new_before.json, gameids.json 등)을 전송하는 코드입니다.

 

필요에 맞게 절의 수와 파일명(변수: etcFileName)을 변경해서 사용해주세요.

import smtplib # 메일을 보내기 위한 라이브러리 모듈
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication 

#
#

def send_final():
	sendEmail = "여러분의이메일@gmail.com"
	recvEmail = "수신자이메일"
	password = "16자리 앱 비밀번호"

	smtpName = "smtp.gmail.com"
	smtpPort = 587

	#여러 MIME을 넣기위한 MIMEMultipart 객체 생성
	msg = MIMEMultipart()

	msg['Subject'] ="이메일 제목"
	msg['From'] = sendEmail 
	msg['To'] = recvEmail 

	#본문 추가
	text = "메일 내용 부분입니다"
	contentPart = MIMEText(text) #MIMEText(text , _charset = "utf8")
	msg.attach(contentPart) 


	#이 아래는 파일을 첨부하는 부분입니다 저는 네개의 파일을 첨부합니다
	#new_before.json 등의 파일명을 여러분이 첨부할 파일명으로 변경하여 사용하시면 됩니다
    
	#파일 추가(저는 이 부분에서 new_before.json이라는 파일을 첨부합니다)
	etcFileName = 'new_before.json'
	with open(etcFileName, 'rb') as etcFD : 
	    etcPart = MIMEApplication( etcFD.read() )
	    #첨부파일의 정보를 헤더로 추가
	    etcPart.add_header('Content-Disposition','attachment', filename=etcFileName)
	    msg.attach(etcPart) 
        
	#파일 추가(저는 이 부분에서 gameids.json이라는 파일을 첨부합니다)
	etcFileName = 'gameids.json'
	with open(etcFileName, 'rb') as etcFD : 
	    etcPart = MIMEApplication( etcFD.read() )
	    #첨부파일의 정보를 헤더로 추가
	    etcPart.add_header('Content-Disposition','attachment', filename=etcFileName)
	    msg.attach(etcPart) 
	
	#파일 추가3
	etcFileName = 'backup_gameids.json'
	with open(etcFileName, 'rb') as etcFD : 
	    etcPart = MIMEApplication( etcFD.read() )
	    #첨부파일의 정보를 헤더로 추가
	    etcPart.add_header('Content-Disposition','attachment', filename=etcFileName)
	    msg.attach(etcPart) 
	
	#파일 추가4
	etcFileName = 'backup_new_before.json'
	with open(etcFileName, 'rb') as etcFD : 
	    etcPart = MIMEApplication( etcFD.read() )
	    #첨부파일의 정보를 헤더로 추가
	    etcPart.add_header('Content-Disposition','attachment', filename=etcFileName)
	    msg.attach(etcPart) 
	
    
    #
	s=smtplib.SMTP( smtpName , smtpPort )
	s.starttls()
	s.login( sendEmail , password ) 
	s.sendmail( sendEmail, recvEmail, msg.as_string() )  
	s.close()