ptrvlck icon

neco_s_mailem

ptrvlck | PRO | 02/24/21 01:29:14 PM UTC | 0 ⭐ | 684 👁️ | Never ⏰ | []
Python |

1.32 KB

|

None

|

0 👍

/

0 👎

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