**필수로 외워야 하는 것은 아니고, 알아두자는 목적으로 작성.
((1단계)) : 필요한 라이브러리 불러오기
# 라이브러리를 불러오기
import smtplib
from email.mime.text import MIMEText
((2단계)) : 이메일 보내기 준비
# smtp 주소
s = smtplib.SMTP('smtp.gmail.com', 587)
# TLS 보안 시작
s.starttls()
# 로그인 인증
s.login('내가 가진 구글 계정', '보안 암호')
((3단계)) : 이메일 내용 구성
# 본문
msg = MIMEText('''
이거 파이썬으로 메일 보낸거당
참말참말 대다나징
얼렁 칭찬해줘
''')
# 제목
msg['Subject'] = '우리집 고양이는 복실 고냥'
((4단계)) : 이메일 보내기
# 메일 보내기
s.sendmail('발신계정', '수신계정', msg.as_string())
s.quit()
남자친구한테 보냈는데 아주 잘 받았다고 했다!
실습 문제 2문제 중 1개는 못풀고 1개는 맞았다.
- 간단한 내용이지만, 마음이 급해서가 컸던 것 같다.
실습 #2: [심화] 마감일 통보 이메일 보내기
# 라이브러리를 불러오기
import smtplib
from email.mime.text import MIMEText
내용에 포함된 날짜는 시스템으로 오늘 날짜를 받아와서 5일을 더하여 내용에 포함되게 하세요.
힌트: f'''문자열{변수}...''' 형태를 활용해 봅니다.
제목: 제출 마감이 5일 남았습니다.
내용:
안녕하세요?
과제 제출 마감이 5일 남았습니다.
0000년 00월 00일까지 반드시 제출바랍니다.
감사합니다!
# 로그인
s = smtplib.SMTP('smtp.gmail.com', 587) # 세션 생성
s.starttls() # TLS 보안 시작
s.login('계정', '보안코드') # 로그인 인증
#본문
msg = MIMEText(f'''안녕하세요?
과제 제출 마감이 5일 남았습니다.
{datetime.today().year}년 {datetime.today().month}월 {datetime.today().day + 5}일까지 반드시 제출바랍니다.
감사합니다!''')
msg['Subject'] = '제출 마감이 5일 남았습니다.'
s.sendmail('발신메일', '수신메일', msg.as_string())
s.quit()
- 다음 문제가 더 어려웠는데 차근차근 풀었더니 쏘옥 풀렸음
실습 #3: [심화] 오늘의 과일 안내 이메일 보내기
엑셀 파일 마지막 실습 결과인 Fruit6.xlsx 파일을 읽어서 다음의 내용으로 이메일을 보내세요.
Fruit6.xlsx의 세번째 열의 0~6 사이의 숫자가 요일을 의미합니다.
오늘의 요일에 해당되는 과일 이름을 읽어서 아래 메일 내용을 구성하세요.
제목: 오늘의 과일은 OOO 입니다.
내용:
안녕하세요?
오늘의 과일은 OOO입니다.
건강을 위해 오전에 꼭 챙겨 드시기 바랍니다.
감사합니다!
힌트
datetime.today().weekday()를 통해 오늘의 요일을 얻을 수 있습니다.
if 조건문을 사용하여 오늘의 요일과 Fruit6.xlsx의 세 번째 열의 값을 비교해 보세요.
값이 일치할 경우 해당하는 행의 첫 번째 열의 값이 오늘의 요일에 해당하는 과일이 됩니다.
# 로그인
s = smtplib.SMTP('smtp.gmail.com', 587) # 세션 생성
s.starttls() # TLS 보안 시작
s.login('메일주소', '보안 암호') # 로그인 인증
# Fruits6.xlsx 파일 불러오기
import openpyxl as xl
wb = xl.load_workbook('Fruit6.xlsx')
sheet2 = wb['Sheet2']
for i in range(sheet2.min_row, sheet2.max_row + 1):
if datetime.today().weekday() == i:
fruit = sheet2.cell(i+1, 1).value
#본문
msg = MIMEText(f'''안녕하세요?
오늘의 과일은 {fruit}입니다.
건강을 위해 오전에 꼭 챙겨 드시기 바랍니다.
감사합니다!''')
msg['Subject'] = f'오늘의 과일은 {fruit} 입니다.'
s.sendmail('발신메일', '수신메일', msg.as_string())
s.quit()
<모범 답안>
# 라이브러리 불러오기
import openpyxl as xl
from datetime import datetime, timedelta
import smtplib
from email.mime.text import MIMEText
# 엑셀 파일 열기
wb = xl.load_workbook('Fruit6.xlsx')
sheet2 = wb['Sheet2']
# 오늘 요일 얻기
weekday = datetime.today().weekday()
# 오늘의 과일 확인
for i in range(0, 7):
if weekday == sheet2.cell(i+1, 3).value: # 오늘의 요일과 3열(요일)의 값이 일치할 경우
fruit = sheet2.cell(i+1, 1).value # 1열(과일)의 값을 변수 fruit에 저장
# 메일 보내기 준비
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login('jangrae@gmail.com', '키입력')
# 본문과 제목
msg = MIMEText(f'''
안녕하세요?
오늘의 과일은 {fruit}입니다.
건강을 위해 오전에 꼭 챙겨 드시기 바랍니다.
''')
msg['Subject'] = f'오늘의 과일은 {fruit} 입니다.'
# 메일 보내기
s.sendmail('발신메일', '수신메일>', msg.as_string())
s.quit()
'파이썬 > 데이터 다루기' 카테고리의 다른 글
[240911] 파이썬 #10 - 엑셀 파일 다루기 (0) | 2024.09.11 |
---|---|
[240911] 파이썬#09 파일 읽고 쓰기, 워드 클라우드 그리 (0) | 2024.09.11 |
[240911] #파이썬08-정규표현 (0) | 2024.09.11 |
[240910] #파이썬07 함수- 출력(Output) (0) | 2024.09.10 |
[240910] # 파이썬06 - 함수 (입력_Input) (0) | 2024.09.10 |