def _fetch_email_count(self, conn, config_setting):
   count = 0
   try:
     conf_set = ConfigSettings(self.acct_set_path)
     from_search_criteria = ''
     subject_search_criteria = ''
     search_criteria = ''
     self.email_poll_interval = int(conf_set.get_value('general', 'email_poll_interval'))
     # Check emails sent from list of senders
     config_from = conf_set.get_value(config_setting, 'from').split('; ')
     config_subject = conf_set.get_value(config_setting, 'subject').split('; ')
     # Compile list of FROM search criteria
     from_search_criteria = self._compile_search_criteria('FROM', config_from)
     # Compile list of FROM search criteria
     subject_search_criteria = self._compile_search_criteria('SUBJECT', config_subject)
     search_criteria = from_search_criteria + subject_search_criteria
     if search_criteria != '':
       # Show only unread emails
       search_criteria = search_criteria + '(UNSEEN)'
       # Search using defined criteria
       typ, msg_ids = conn.search(None, search_criteria)
       # Set email counts
       if msg_ids[0] != '':
         count = len(msg_ids[0].split(' '))
       else:
         count = 0
       if self.verbose == True: print 'INBOX has %d email(s) matching %s' % (count, search_criteria)
     else:
       count = 0
   except:
     pass
   return count
def open_connection(verbose=False):
  # Read the config file
  conf = ConfigSettings('account_settings.ini')

  # Connect to the server
  hostname = conf.get_value('server', 'hostname')
  if verbose: print 'Connecting to', hostname
  connection = imaplib.IMAP4_SSL(hostname)

  # Login to our account
  username = conf.get_value('account', 'username')
  password = conf.get_value('account', 'password')
  if verbose: print 'Logging in as', username
  connection.login(username, password)
  return connection
 def _fetch_email_count(self, conn, config_setting):
     count = 0
     try:
         conf_set = ConfigSettings(self.acct_set_path)
         from_search_criteria = ''
         subject_search_criteria = ''
         search_criteria = ''
         self.email_poll_interval = int(
             conf_set.get_value('general', 'email_poll_interval'))
         # Check emails sent from list of senders
         config_from = conf_set.get_value(config_setting,
                                          'from').split('; ')
         config_subject = conf_set.get_value(config_setting,
                                             'subject').split('; ')
         # Compile list of FROM search criteria
         from_search_criteria = self._compile_search_criteria(
             'FROM', config_from)
         # Compile list of FROM search criteria
         subject_search_criteria = self._compile_search_criteria(
             'SUBJECT', config_subject)
         search_criteria = from_search_criteria + subject_search_criteria
         if search_criteria != '':
             # Show only unread emails
             search_criteria = search_criteria + '(UNSEEN)'
             # Search using defined criteria
             typ, msg_ids = conn.search(None, search_criteria)
             # Set email counts
             if msg_ids[0] != '':
                 count = len(msg_ids[0].split(' '))
             else:
                 count = 0
             if self.verbose == True:
                 print 'INBOX has %d email(s) matching %s' % (
                     count, search_criteria)
         else:
             count = 0
     except:
         pass
     return count