728x90
Python_기법] 이메일
라이브러리 import
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
파일
def send_email(subject, body, recipient, files):
sender = '메일@메일.com'
password = '앱 비밀번호'
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender, password)
message = MIMEMultipart()
message['From'] = sender
message['To'] = recipient
message['Subject'] = subject
message.attach(MIMEText(body, 'plain'))
for file in files: # files의 항목들을 연다.
attachment = open(file, 'rb')
part = MIMEBase('application', 'octet-stream') # MIMEBase 타입을 설정한다. 'application', 'octet-stream' 이것은 일반적인 바이너리 파일을 나타내는 MIME, 다양한 유형의 파일 첨부 가능
part.set_payload((attachment).read())
encoders.encode_base64(part) # ASCII 문자열로 변환하여 이메일을 통한 전송 중에 데이터가 손상되지 않도록 한다.
part.add_header('Content-Disposition', "attachment; filename= %s" % file)
message.attach(part)
# 이메일 발송
server.send_message(message)
server.quit()
함수 사용
if st.button('Sending email'): # streamlit 전송 버튼
send_email(
subject = '제목',
body = 'Check This File',
recipient = '메일@메일.com',
files = ['./under.csv', './over.csv']
)
st.write('Complete')
728x90
'Python 기법' 카테고리의 다른 글
python 기법] 파일 읽고 쓰기 mkdir, read, write, writelines, readlines, readline (1) | 2023.12.03 |
---|---|
python 기법] 워드 클라우드 (1) | 2023.12.03 |