python gmail보내기

python 2016. 2. 1. 09:28

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
블로그 이미지

유정쓰

,

tkninter tk

python 2016. 1. 28. 14:52

 Tk에서 쓰이는 parameter

 

1. background = bg [default value:'SystemButtonFace'] : color

root창의 배경 색

 

2. borderwidth = bd [default value:0] : mm/pixel

root창의 테두리 두께

 

3. class [default value:'Tk']

class option after widget is created

 

4. colormap [default value:'']

colormap option after widget is created

 

5. container [default value:0]

container option after widget is created

 

6. cursor [default value:''] :

root마우스커서모양

: "arrow", "circle", "clock", "cross", "dotbox", "exchange", "fleur", "heart", "heart", "man", "mouse", "pirate", "plus", "shuttle", "sizing", "spider", "spraycan", "star", "target", "tcross", "trek", "watch" 등등

 

7. height [default value:0] : mm/pixel

root창의 세로크기

root창에 위젯이 구성되면 값은 무시되고, 크기는 자동조절된다.

 

8. highlightbackground [default value:'SystemButtonFace'] : color

root창이 선택되지 않았을때의 하이라이트색

 

9. highlightcolor [default value:'SystemWindowFrame'] : color

root창이 선택되었을때의 하이라이트색

 

10. highlightthickness [default value:0] : mm/pixel

root창이 선택되었을때와 선택되지 않았을때를 구분하는 하이라이트의 두께

 

11. menu [default value:''] :

root창에 메뉴를 사용할경우 이 parameter Menu객체를 지정하여 사용함

 

12. padx [default value:'0'] : mm/pixel

root창의 테두리와 내용사이의 가로여백

 

13. pady [default value:'0'] : mm/pixel

root창의 테두리와 내용사이의 세로여백

 

14. relief [default value:'flat']

root창의 테두리모양

: "flat", "groove", "raised", "ridge", "solid", "sunken"

 

15. screen [default value:'']

screen option after widget is created

 

16. takefocus [default value:'0']

 

17. use [default value:'']

 

18. visual [default value:'']

visual option after widget is created

 

19. width [default value:0] : mm/pixel

root창의 가로크기

root창에 위젯이 구성되면 값은 무시되고, 크기는 자동조절된다.

 

 

'python' 카테고리의 다른 글

연달아 창 띄우기  (0) 2016.02.02
python gmail보내기  (0) 2016.02.01
Tkinter 기초  (0) 2016.01.28
파일 관리  (0) 2016.01.27
특수문자 사용  (0) 2016.01.27
블로그 이미지

유정쓰

,

Tkinter 기초

python 2016. 1. 28. 14:45

(간단한 창 띄우기)

From tkinter import*

Root=Tk()

Root.mainloop()

 

<from tkinter import*

root=Tk()

F=Frame(root)

F.pack()#packing

button1=Button(F)                 

button1['text']="hello"

button1['background']='green'

button1.pack()

 

root.mainloop()>

 

위 코드를 치게 되면 밑의 창이 나오게 됩니다. :-)

 

 

 

'python' 카테고리의 다른 글

python gmail보내기  (0) 2016.02.01
tkninter tk  (0) 2016.01.28
파일 관리  (0) 2016.01.27
특수문자 사용  (0) 2016.01.27
time module  (0) 2016.01.27
블로그 이미지

유정쓰

,