python 에서 pop 3 메 일 을 다운로드 하여 로 컬 에 저장 합 니 다.

3263 단어 pythonpop3우편물
python 을 이용 하여 유 닉 스 관리 책 에 로그 인하 여 메 일 을 다운로드 하 는 스 크 립 트 가 있 습 니 다.연습 을 해 보 니 괜 찮 습 니 다.메 일 백업 에 있어 서 는 빠 르 지만 이름 을 짓 는 방식 은 번호 와 파일 크기 로 명명 되 어 읽 기 가 불편 합 니 다.그래서 보 내 는 사람의 메 일 주소 이름 으로 개선 되 었 습 니 다.범위 가 길 어서 메 일 레이아웃 이 바 뀌 었 을 수도 있 습 니 다.일부 메 일 은 보 낸 사람 을 가 져 올 때 정확하게 일치 하지 않 습 니 다.
1.명명 방식 은 번호 와 파일 크기 로 명명 합 니 다.

#!/usr/bin/env python 
#-*- coding: utf-8 -*- 
#filename:receive_pop3_email_download.py 
 
import poplib 
 
username = 'dxx_study' 
passwd = 'xXXXXXXX' 
 
mail_server = 'pop.163.com' 
 
p = poplib.POP3(mail_server) 
p.user(username) 
p.pass_(passwd) 
for msg_id in p.list()[1]: 
  print msg_id 
  outf = open('%s.eml' % msg_id, 'w') 
  outf.write('
'.join(p.retr(msg_id)[1])) outf.close() p.quit()
출력:

>>> ================================ RESTART ================================ 
>>>  
1 6189 
2 14284 
3 1712 
4 24912 
5 129052 
6 1399 
7 23298 
8 47902 
9 2334 
10 48887 
11 1081 
12 34930 
13 2098 
14 26316 
15 32381 
16 1822 

2.보 낸 사람의 메 일 주소 이름

#!/usr/bin/env python 
#-*- coding: utf-8 -*- 
#filename:receive_pop3_email.py 
 
import poplib, re 
 
username = 'dxx_study' 
passwd = 'xuXXXXXu' 
 
mail_server = 'pop.163.com' 
 
p = poplib.POP3(mail_server) 
 
#p.set_debuglevel(2)#           
#s = p.getwelcome()#       
p.user(username) 
p.pass_(passwd) 
p.stat() 
#p.list()#         ,    , p.list()[0]   
#p.retr(42)#          
#print p.top(42,42)#      ,           
#p.uidl()#Return message digest (unique id) list 
#p.list()[1]#          , ['1 6189', '2 14284', '3 1712',....] 
#p.retr(2)[0]#        14284 octets   
 
 
 
def file_name(text):#         ,     
  pattern = u"Sender: (.*)" 
  file_name = re.search(pattern, text, re.I) 
  if file_name == None: 
    exit 
  else: 
    return file_name.group(1) 
 
 
def download_mail(): 
  for msg_id in p.list()[1]: 
    retr = p.retr(msg_id)[1] 
    for i in range(0,len(retr)): 
      name = file_name(retr[i])#  filename            
      if name == None: 
        exit 
      else: 
        outf = open('%s.eml' % name, 'w') 
        outf.write('
'.join(retr)) outf.close() download_mail() p.quit()

이상 의 기능 은 백업 메 일 에 비교적 유용 합 니 다.첨부 파일 도 다운로드 되 었 기 때 문 입 니 다.pop 3 메 일 서비스 가 시대 에 뒤떨어 지고 서비스 도 안정 적 이지 않 기 때문에 현재 IMAP 를 사용 하 는 것 이 유행 하고 있 습 니 다.그 다음 에 시간 이 있 으 면 후 자 를 지원 하 는 것 을 쓰 면 사용자 가 스스로 입력 하고 선택 하 며 각 메 일 클 라 이언 트 를 추출 할 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기