RPA/Python

[email] Gmail 환경설정 및 이메일 발신

꼰대 2021. 5. 6. 20:37

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)

반응형