Gmail로 메일보내기 <<
Gmail을 통해서 메일을 보내거나 받아오기 위한 정보는 아래와 같다.
받는 메일 서버(POP3) SSL 필요 |
주소 : pop.gmail.com SSL사용 : YES 포트 : 995 |
보내는 메일 서버(SMTP) TLS 필요 |
주소 : smtp.gmail.com 인증사용 : YES STARTTLS사용 : YES 포트 : 465 or 587 |
이메일주소 |
계정@gmail.com |
password |
Gmail계정 Password |
그 중 SMTP에 관련된 내용을 보면, 서버주소는 smtp.gmail.com이고 포트번호는 587혹은 465번을 써야 하고,
STARTTLS를 써야 한다고 명시되어 있는데, TLS(Transport Layer Security)는 TCP/IP와 같은 통신에서 사용하는 암호규약입니다.
STARTTLS는 텍스트에 대한 암호화를 업그레이드하고 확장한 버전이다.
Python은 STARTLS를 위해 smltplib모듈의 starttls()메서드를 지원한다.
>>> import smtplib >>> s=smtplib.SMTP('smtp.gmail.com',587) >>> s.ehlo() (250, b'mx.google.com at your service, [114.111.62.248]\nSIZE 35882577\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES') >>> s.starttls() (220, b'2.0.0 Ready to start TLS') >>> s.ehlo() (250, b'mx.google.com at your service, [114.111.62.248]\nSIZE 35882577\n8BITMIME\nAUTH LOGIN PLAIN XOAUTH XOAUTH2\nENHANCEDSTATUSCODES') >>> s.login('hyj****@gmail.com','****') (235, b'2.7.0 Accepted') |
smtp.gmail.com의 인증에 성공한 것을 보실 수 있습니다.
아래는 로컬의 logo.html파일을 읽어서 메일의 내용을 생성하고, logo.png파일을 첨부파일로 하여
Gmail smtp에서 Naver메일로 메일을 발송하는 예제이다.
# -*- coding : cp949 -*- import smtplib from email.mime.base import MIMEBase from email.mime.text import MIMEText from email.mime.image import MIMEImage
host='smtp.gmail.com' #Gmail smtp server address port='587' #smtp port htmlfile='logo.html' imagefile='logo.png'
sender='hyj****@gmail.com' #sender email address recipient='hyj****@naver.com' #recipient email address
# Create MIMEBase msg=MIMEBase('multipart','mixed') msg['Subject']='Test Email in html.logo' msg['From']=sender msg['To']=recipient
# Create MIMEHtml htmlF=open(htmlfile,'rb') htmlPart=MIMEText(htmlF.read(),'html',_charset='utf-8') htmlF.close()
# Create MIMEImage imageF=open(imagefile,'rb') imagePart=MIMEImage(imageF.read()) imageF.close()
# attach html,image msg.attach(imagePart) msg.attach(htmlPart)
# mail send s=smtplib.SMTP(host,port) s.set_debuglevel(1) #debuging s.ehlo() s.starttls() s.ehlo() s.login(sender,'****') s.sendmail(sender,[recipient],msg.as_string()) s.close() |
위를 실행하면 Gmail에서 보낸메일을 naver메일로 확인할수 있다.
※ Python3 이전 버젼의 MIME
이메일관련 모듈이름 상당수가 python3에서 이름이 변경되었다 예를 들면 email.mime.text.MIMEText는 python3이전 버전에서는 email.MIMEText.MIMEText이다. Python3에서 기존 코드를 참고하여 프로그램을 작성하는 경우, 모듈의 이름이 변경된 경우를 반드시 확인하여야 한다. |
'python' 카테고리의 다른 글
tk listbox (0) | 2016.02.02 |
---|---|
연달아 창 띄우기 (0) | 2016.02.02 |
tkninter tk (0) | 2016.01.28 |
Tkinter 기초 (0) | 2016.01.28 |
파일 관리 (0) | 2016.01.27 |