SMTP 서버를 Gmail을 통해 처리할 경우 App 비밀번호를 설정해야하며 App 비밀번호는 등록하는 기기에 한정하여 사용할 수 있다.
1. Google 2단계 인증 설정
크롬 브라우저 우측 상단 Gmail 계정 -> 계정관리 -> 보안 -> Google에 로그인 ->
2단계 인증 선택 -> 절차에 따라 2단계 인증 설정
2. Gmail App 비밀번호 설정
크롬 브라우저 우측 상단 Gmail 계정 -> 계정관리 -> 보안 -> Google에 로그인 ->
앱 비밀번호 선택 -> 절차에 따라 App 비밀번호 설정 -> 설정 후 문자 16자리 복사
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
# 메일 제목
msg['Subject'] = '파일 첨부 테스트 이메일'
# 발신자
msg['From'] = '발신자 메일주소'
# 수신자
msg['To'] = '수신자 메일주소'
# 참조
# msg['Cc'] = '참조자 메일주소'
# 숨은참조
# msg['Bcc'] = '숨은참조자 메일주소'
# 수신자가 여려명일 경우
# msg['To'] = '메일주소1, 메일주소2, 메일주소3'
# 수신자 정보가 리스트에 있을 경우
# mail_list = ['메일주소1', '메일주소2', '메일주소3']
# join은 리스트의 값을 합치는데 구분은 ', '로 한다는 내용
# msg['To'] = ', '.join(mail_list)
# 본문 내용
msg.set_content('파일 첨부 및 다운로드')
# 첨부파일 불러오기
# r : read, b : binary
# MIME 타입 : https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
with open('trash.png', 'rb') as f:
msg.add_attachment(f.read(), maintype='image', subtype='png', filename=f.name)
# 추가 첨부파일 있다면 with open() 추가
# with open('test.xlsx', 'rb') as f:
# msg.add_attachment(f.read(), maintype='application', subtype='vnd.ms-excel', filename=f.name)
# 메일 발신 처리
with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
# 연결 수립 확인
smtp.ehlo()
# 연결 암호화
smtp.starttls()
# Gmail 로그인
smtp.login('Gmail 메일주소', 'Gmail App 비밀번호')
# 이메일 보내기
smtp.send_message(msg)
'RPA > Python' 카테고리의 다른 글
[email] 이메일 박스 내 이메일 검색 (0) | 2021.05.06 |
---|---|
[email] 이메일 수신 (0) | 2021.05.06 |
[selenium] 파일 다운로드 경로 변경 (0) | 2021.05.06 |
[selenium] 페이지 로딩까지 대기 (0) | 2021.05.06 |
[selenium] 동적 페이지 스크롤 (0) | 2021.05.06 |