import poplib
import re
from baseemail import BaseEmail
class PopEmail(BaseEmail):
def __init__(self, user, passwd, server, port):
self.user = user
self.passwd = passwd
self.server = server
self.port = port
def connect(self):
if self.server is None or self.port is None:
raise ValueError('Server or port is not set')
print ("connecting...")
self.pop = poplib.POP3_SSL(self.server, self.port)
try:
self.pop.user(self.user)
self.pop.pass_(self.passwd)
except ValueError as e:
raise ValueError('username or password is incorrect.')
else:
print ("connected.")
print ("There are %i messages" % (len(self.pop.list()[1])))
def getRawMessage(self, index):
self.__checkIndex(index)
return b'\r\n'.join(self.pop.retr(index+1)[1]).decode('utf-8')
def con(self):
return self.pop
def getRawNum(self):
return len(self.pop.list()[1])
def deleteMessage(self, index):
self.__checkIndex(index)
print(self.pop.list()[1][index])
self.pop.dele(index+1)
def __checkIndex(self, index):
if index >= len(self.pop.list()[1]):
raise ValueError('index is out of bounds.')
def close(self):
self.pop.quit()
Comments