이번 글에서는 파일 첨부에 관련된 내용이 추가되어있습니다.
일단 보내는 법에 대한 내용은 다음을 참고하시면 됩니다.
Python 이용해서 Gmail로 메일 보내기
안녕하세요. 이번 글에서는 아주 간단하게, 공짜로 메일을 프로그램을 통해서 보낼 수 있는 방법을 공유드립니다. 일단 다음과 같이 파이썬 프로그램 코드를 작성합니다. import smtplibfrom emai
toycoding.tistory.com
< 파일 첨부하기 >
사용하는 방법은 비슷합니다만, 파일 첨부를 위한 내용이 추가가 되어야겠죠 ?
아주 간단하게 실행하는 파일과 같은 폴더에서 attchment.txt 라는 파일을 보내는 것을 작성해보았습니다.
파일을 읽고, EmailMessage 객체에 add_attachment 라는 함수를 실행해서 파일을 실어주면 됩니다.
import smtplib
from email.message import EmailMessage
# SMTP 세션생성
s = smtplib.SMTP('smtp.gmail.com', 587)
# 보안 TLS 시작
s.starttls()
# 로그인 & 인증
s.login("<보내려고하는 내 메일 계정>", "<내 계정 앱 비밀번호>")
# 보낼 메시지 지정
message = EmailMessage()
message['Subject'] = f"제목"
message['From'] = "<보내는 사람 메일 계정>"
message['To'] = "<받는 사람 메일 계정>"
message.set_content("본문 with File")
with open('attachment.txt', 'rb') as f:
file_data = f.read()
message.add_attachment(file_data, maintype='text', subtype='plain', filename='attachment.txt')
# 메일전송
s.send_message(message)
# 메일전송세션 종료
s.quit()
< 파일을 여러 개 첨부하기 >
이것은 그냥 파일 첨부하는 것과 동일한 방법으로 추가해주시면 됩니다.
with open('file1.txt', 'rb') as f1, open('file2.txt', 'rb') as f2:
file1_data = f1.read()
file2_data = f2.read()
message.add_attachment(file1_data, maintype='text', subtype='plain', filename='file1.txt')
message.add_attachment(file2_data, maintype='text', subtype='plain', filename='file2.txt')
< 여러 종류의 파일 첨부하기 >
add_attachment 함수의 maintype 과 subtype 을 각 파일과 맞는 형태로 넣어주시면 됩니다.
파일 종류 | maintype | subtype |
TXT | text | plain |
HTML | text | html |
application | ||
EXCEL | application | vnd.ms-excel (xls) , vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx) |
IMAGE | image | jpeg, png, gif, tiff, rgb, pbm, pgm, ppm, rast, xbm, bmp, webp, exr... |
AUDIO | audio | mp3, mpeg, wav ... |
VIDEO | video | mp4, ogg, avi ... |
파일형식 잘 모름 | application | octet-stream |
따라서 기본적인 형식들 위주로 작성하고, 잘 모르겠다 싶은 것은 octet-stream 으로 설정해주시면 메일이 정상적으로 전송될 것입니다.
이상으로 이번 글을 마치도록 하겠습니다.
'Toy' 카테고리의 다른 글
ChatGPT API (OpenAI API) 시작하기 (2) - C# 으로 튜토리얼 실행 (1) | 2024.08.18 |
---|---|
ChatGPT API (OpenAI API) 시작하기 (1) - 계정생성 (1) | 2024.08.11 |
네이버 책검색 API 이미지 크게 사용하기 (0) | 2024.07.21 |
Python 이용해서 Gmail로 메일 보내기 (3) | 2024.07.14 |
댓글