def updateSenderAccess(self, oldMail = None, oldDomain = None): conf = FLSConfig.getInstance() mailAddr = '%s@%s' % (self.mail, self.domain) if oldMail is None: oldMail = self.mail if oldDomain is None: oldDomain = self.domain mailOldAddr = '%s@%s' % (oldMail, oldDomain) cnt = [] with open(conf.get('mailserver', 'senderaccess'), 'r') as f: cnt = f.read().split('\n') cnt = [f for f in cnt if (('\t' in f and f[0:f.index('\t')] != mailOldAddr) or f[0:1] == '#') and len(f.strip()) > 0] # now add data: if self.state in (MailAccount.STATE_CHANGE, MailAccount.STATE_CREATE): if self.enabled: cnt.append('%s\t%s' % (mailAddr, 'OK')) else: cnt.append('%s\t%s' % (mailAddr, '4508q 4.2.1 User is disabled at the moment')) # now sort file cnt.sort() # now write back try: with open(conf.get('mailserver', 'senderaccess'), 'w') as f: f.write('\n'.join(cnt)) except: return False else: # postmap return hashPostFile(conf.get('mailserver', 'senderaccess'), conf.get('mailserver', 'postmap'))
def updateMailboxes(self, oldMail = None, oldDomain = None): conf = FLSConfig.getInstance() mailAddr = '%s@%s' % (self.mail, self.domain) if oldMail is None: oldMail = self.mail if oldDomain is None: oldDomain = self.domain mailOldAddr = '%s@%s' % (oldMail, oldDomain) cnt = [] with open(conf.get('mailserver', 'mailboxes'), 'r') as f: cnt = f.read().split('\n') cnt = [f for f in cnt if (('\t' in f and f[0:f.index('\t')] != mailOldAddr) or f[0:1] == '#') and len(f.strip()) > 0] # now add data: if self.state in (MailAccount.STATE_CHANGE, MailAccount.STATE_CREATE): if self.type == MailAccount.TYPE_ACCOUNT: cnt.append('%s\t%s%s%s%s' % (mailAddr, self.domain, os.sep, self.mail, os.sep)) # now sort file cnt.sort() # now write back try: with open(conf.get('mailserver', 'mailboxes'), 'w') as f: f.write('\n'.join(cnt)) except: return False else: # postmap return hashPostFile(conf.get('mailserver', 'mailboxes'), conf.get('mailserver', 'postmap'))
def updateAliases(self, oldMail = None, oldDomain = None): conf = FLSConfig.getInstance() mailAddr = '%s@%s' % (self.mail, self.domain) if oldMail is None: oldMail = self.mail if oldDomain is None: oldDomain = self.domain mailOldAddr = '%s@%s' % (oldMail, oldDomain) cnt = [] with open(conf.get('mailserver', 'aliases'), 'r') as f: cnt = f.read().split('\n') cnt = [f for f in cnt if (('\t' in f and f[0:f.index('\t')] != mailOldAddr) or f[0:1] == '#') and len(f.strip()) > 0] # now add data: if self.state in (MailAccount.STATE_CHANGE, MailAccount.STATE_CREATE): forward = copy.copy(self.forward) # remove all empty things i = 0 for f in forward: if len(f.strip()) <= 0: del(forward[i]) i += 1 if self.type == MailAccount.TYPE_ACCOUNT: forward.insert(0, mailAddr) forward = list(set(forward)) cnt.append('%s\t%s' % (mailAddr, ','.join(forward))) # now sort file cnt.sort() # now write back try: with open(conf.get('mailserver', 'aliases'), 'w') as f: f.write('\n'.join(cnt)) except: return False else: # postmap return hashPostFile(conf.get('mailserver', 'aliases'), conf.get('mailserver', 'postmap'))