파이썬 개발 공유

파이썬으로 메일 보내기

happyrichman 2021. 2. 4. 03:24

Gmail로 하겠습니다.

 

1. 먼저 해야할 일

1. Gmail 에서 IMAP사용 설정

설정 > 전달 및 POP/IMAMP > IMAP사용

2. Gmail에서 2단계 인증 완료

3. Gmail에서 앱 비밀번호 설정 및 비밀번호 생성

2. 파일 첨부

'변경해유' 부분은 모두 수정해야 제대로 작동합니다.

아래 코드 블럭은 복사가 막혀있으니, 첨부파일 올리겠습니다.

 

파이썬으로 메일 보내기.py
0.00MB

3. 코드

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.base import MIMEBase
from email import encoders
import os

emailID = "변경해유!"
emailPW = "변경해유! 위에서 생성한 앱비밀번호"
your_email_adr = "변경해유!@gmail.com"
target_email_adr = "변경해유!@naver.com"
email_title = "테스트 중입니다"
email_text = "네 테스트 중입니다"

#첨부할 파일의 풀 주소를 입력해야 한다. 윈도우 파일 주소와 달리 \를 /로 바꿔줘야한다
file1_dir = "(변경해유!)C:/dev/a.txt"


def mail_start():
    # 세션생성, 로그인
    s = smtplib.SMTP('smtp.gmail.com', 587)
    s.starttls()
    s.login(emailID, emailPW)

    # 제목, 본문 작성
    msg = MIMEMultipart()
    msg['Subject'] = email_title
    msg.attach(MIMEText(email_text, 'plain'))

    # 파일첨부
    etcFileName = os.path.normpath(file1_dir)
    with open(etcFileName, 'rb') as etcFD :
        etcPart = MIMEApplication( etcFD.read() )
        #첨부파일의 정보를 헤더로 추가
        #filename="yes1" 를 수정해 이메일에 첨부되는 파일의 이름을 수정 할 수 있음
        etcPart.add_header('Content-Disposition','attachment', filename="yes1")
        msg.attach(etcPart)

    # 메일 전송

    s.sendmail(your_email_adr, target_email_adr, msg.as_string())
    s.quit()

mail_start()