728x90
IMAP
IMAP와 POP3는 아웃룩(Outlook), 썬더버드(Thunderbird), 안드로이드 기본 이메일 앱과 같은 메일 클라이언트에서 이메일에 접속하고자 할 때 사용하는 프로토콜입니다. IMAP의 경우 메일서버에 클라이언트가 접속해서 메일확인 가능.
1. Gmail IMAP 설정
2. 코딩
#-*- coding:utf-8 -*-
import base64
import imaplib
import email
import email.header
def findEncodingInfo(txt):
info = email.header.decode_header(txt)
s, encoding = info[0]
return s, encoding
imap = imaplib.IMAP4_SSL('imap.gmail.com')
id = "hyunwook429@gmail.com"
pw = "jokupqlyhrghfunv"
imap.login(id, pw)
imap.select('inbox')
#하나 x
#다수
#전체 'All'
resp, data = imap.uid('search', None, 'All')
#print resp ==> OK
#print data ==> 메일
#data로 만들어진 하나의 배열 안에 각각의 데이터를 구분하기
all_email = data[0].split()
print all_email
for mail in all_email:
result, data = imap.uid('fetch', mail, '(RFC822)')
raw_email = data[0][1]
# print raw_email.decode("UTF-8")
print "="*80
email_message = email.message_from_string(raw_email.decode('utf-8'))
# print email_message
print "FROM:", email_message['From']
print "SENDER:", email_message['Sender']
print "TO:", email_message['To']
print "DATE:", email_message['Date']
b, encode = findEncodingInfo(email_message['Subject'])
print "SUBJECT:", b
print "DECODE:", encode
print "CONTENT:"
print "="*80
if email_message.is_multipart(): #email_message가 리스트면 True반환
for part in email_message.get_payload():
if part.get_content_type() =='text/plain':
bytes=part.get_payload(decode = True)
encode=part.get_content_charset()
print str(bytes)
print str(encode)
print "="*80
imap.close()
imap.logout()
- IMAP서버에서 확인한 이메일
- Gmail 웹에서 확인한 이메일
728x90
'IT > 파이썬' 카테고리의 다른 글
[모듈] time, datetime(timedelta) 모듈로 날짜/시간 구하기 (0) | 2020.09.23 |
---|---|
[pytham] interpreter field is empty - python 시작 (0) | 2020.09.21 |
[SMTP] 이메일 보내기 (0) | 2020.07.03 |
[print] 데이터 출력함수 사용해서 cli에 출력하기 (0) | 2020.05.31 |
[Input] 입력 값 변수에 저장하기 (0) | 2020.05.30 |