파이썬 메일 읽어오기 [출처] 파이썬 메일 읽어오기|작성자 skyhigh1024 # ============================================================================= # 필요하신분 가져다 사용하세요 # 원본 출처 : http://www.cherrynet.co.kr/bbs_view.php?s=78&pseq=8&mnid=1 def decodeHeader(headerMsg) : if noMsg > 0 : print filename + ' : file Saved' mbox.quit() [출처] 파이썬 메일 읽어오기|작성자 skyhigh1024
# -*- coding: euc-kr -*-
# =============================================================================
# Title : Mail 가져오기
# =============================================================================
# 대용량 파일 가겨올때는 오류 발생한다 고쳐보기 귀찮아...
import os, sys
import poplib
import email
import mimetypes
from email import Header
from datetime import *
import time
reload(sys); sys.setdefaultencoding('euc-kr')
result = Header.decode_header(headerMsg)
return ''.join([t[0] for t in result])
def readMail(host, userid, passwd) :
mbox = poplib.POP3(host)
mbox.user(userid)
mbox.pass_(passwd)
noMsg, tsize = mbox.stat()
sToDay = str(fnMakeDatTime())
nStartCnt = 0
for i in range(nStartCnt,noMsg):
(server_msg, body, octets) = mbox.retr(int( i+1))
message = '\n'.join(body)
msg = email.message_from_string(message)
sFromEmail = str(str(decodeHeader(msg['from'])))
sToEmail = str(decodeHeader(msg['to']))
sSubJect = str(decodeHeader(msg['subject']))
sMailDate = str(msg['date'])
for part in msg.walk() :
if part.get_content_maintype().lower() == 'multipart':
continue
filename = part.get_filename()
filename = decodeHeader(filename)
#파일명이 없는경우 None로 저장된다.
if filename == "None" :
ext = mimetypes.guess_extension(part.get_content_type())
else:
#파일명이 있는경우 [.]아래부터 짤라서 처리한다.
nPos = filename.find('.')
ext = filename[nPos:]
filename = filename
if not ext:
ext = '.bin'
#첨부파일이 있는경우 메일 본문내용이 .ksh로 저장된다.
#이를 html로 변경해주면됨.
if ext == ".ksh":
ext =".html"
if filename == "None":
#1. 순번으로 저장할대 사용
filename = 'pat-%03d%s' % (i, ext)
fp = open(filename, 'wb')
sText = part.get_payload(decode=1)
fp.write(sText)
fp.close()
if __name__ == '__main__':
print '------------- Start Get Mail -------------'
#readMail('pop.mail.com','사용자ID','패스워드')
print '------------- End Get Mail -------------'
'프로그램&DB > Python' 카테고리의 다른 글
ASP에서 python 사용하기 (0) | 2012.05.03 |
---|---|
파이썬 int 정수형을 string 문자열로 변환하는 함수 How to Convert Int to String in Python (0) | 2012.04.17 |
파이썬 시작시 처리 사항 (0) | 2012.04.09 |
날짜시간처리 (0) | 2012.04.09 |
특정디렉토리 로그 삭제 (2일전) (0) | 2012.04.09 |