def execute_daily(): """email digest""" try: from setup.doctype.email_digest.email_digest import send send() except Exception, e: scheduler.log('email_digest.send')
def retrieve_message(self, pop_meta, msg_num): incoming_mail = None try: self.validate_pop(pop_meta) msg = self.pop.retr(msg_num) incoming_mail = IncomingMail(b'\n'.join(msg[1])) webnotes.conn.begin() self.process_message(incoming_mail) webnotes.conn.commit() except (TotalSizeExceededError, EmailTimeoutError): # propagate this error to break the loop raise except: # log performs rollback and logs error in scheduler log log("receive.get_messages", self.make_error_msg(msg_num, incoming_mail)) self.errors = True webnotes.conn.rollback() self.pop.dele(msg_num) else: self.pop.dele(msg_num)
def execute_all(): """ * get support email * recurring invoice """ try: from support.doctype.support_ticket import get_support_mails get_support_mails() except Exception, e: scheduler.log('get_support_mails')
def get_messages(self): """ Loads messages from the mailbox and calls process_message for each message """ import webnotes if not self.check_mails(): return # nothing to do webnotes.conn.commit() self.connect() num = num_copy = len(self.pop.list()[1]) # track if errors arised errors = False # WARNING: Hard coded max no. of messages to be popped if num > 20: num = 20 for m in xrange(1, num+1): msg = self.pop.retr(m) self.pop.dele(m) try: incoming_mail = IncomingMail(b'\n'.join(msg[1])) webnotes.conn.begin() self.process_message(incoming_mail) webnotes.conn.commit() except: from webnotes.utils.scheduler import log # log performs rollback and logs error in scheduler log log("receive.get_messages") errors = True webnotes.conn.rollback() # WARNING: Delete message number 101 onwards from the pop list # This is to avoid having too many messages entering the system num = num_copy if num > 100 and not errors: for m in xrange(101, num+1): self.pop.dele(m) self.pop.quit() webnotes.conn.begin()
def get_messages(self): """ Loads messages from the mailbox and calls process_message for each message """ import webnotes if not self.check_mails(): return # nothing to do webnotes.conn.commit() self.connect() num = num_copy = len(self.pop.list()[1]) # track if errors arised errors = False # WARNING: Hard coded max no. of messages to be popped if num > 20: num = 20 for m in xrange(1, num + 1): msg = self.pop.retr(m) self.pop.dele(m) try: incoming_mail = IncomingMail(b'\n'.join(msg[1])) webnotes.conn.begin() self.process_message(incoming_mail) webnotes.conn.commit() except: from webnotes.utils.scheduler import log # log performs rollback and logs error in scheduler log log("receive.get_messages") errors = True webnotes.conn.rollback() # WARNING: Delete message number 101 onwards from the pop list # This is to avoid having too many messages entering the system num = num_copy if num > 100 and not errors: for m in xrange(101, num + 1): self.pop.dele(m) self.pop.quit() webnotes.conn.begin()
def get_messages(self): import webnotes if not self.check_mails(): return # nothing to do webnotes.conn.commit() self.connect() num = num_copy = len(self.pop.list()[1]) # track if errors arised errors = False # WARNING: Hard coded max no. of messages to be popped if num > 20: num = 20 for m in xrange(1, num+1): msg = self.pop.retr(m) # added back dele, as most pop3 servers seem to require msg to be deleted # else it will again be fetched in self.pop.list() self.pop.dele(m) try: incoming_mail = IncomingMail(b'\n'.join(msg[1])) webnotes.conn.begin() self.process_message(incoming_mail) webnotes.conn.commit() except: from webnotes.utils.scheduler import log # log performs rollback and logs error in scheduler log log("receive.get_messages") errors = True webnotes.conn.rollback() # WARNING: Mark as read - message number 101 onwards from the pop list # This is to avoid having too many messages entering the system num = num_copy if num > 100 and not errors: for m in xrange(101, num+1): self.pop.dele(m) self.pop.quit() webnotes.conn.begin()
def get_messages(self): import webnotes if not self.check_mails(): return # nothing to do webnotes.conn.commit() self.connect() num = num_copy = len(self.pop.list()[1]) # track if errors arised errors = False # WARNING: Hard coded max no. of messages to be popped if num > 20: num = 20 for m in xrange(1, num + 1): msg = self.pop.retr(m) # added back dele, as most pop3 servers seem to require msg to be deleted # else it will again be fetched in self.pop.list() self.pop.dele(m) try: incoming_mail = IncomingMail(b'\n'.join(msg[1])) webnotes.conn.begin() self.process_message(incoming_mail) webnotes.conn.commit() except: from webnotes.utils.scheduler import log # log performs rollback and logs error in scheduler log log("receive.get_messages") errors = True webnotes.conn.rollback() # WARNING: Mark as read - message number 101 onwards from the pop list # This is to avoid having too many messages entering the system num = num_copy if num > 100 and not errors: for m in xrange(101, num + 1): self.pop.dele(m) self.pop.quit() webnotes.conn.begin()
def run_fn(fn): try: fn() except Exception, e: scheduler.log(fn.func_name)
def execute_all(): """ * get support email * recurring invoice """ try: from support.doctype.support_ticket import get_support_mails get_support_mails() except Exception, e: scheduler.log('get_support_mails') try: from accounts.doctype.gl_control.gl_control import manage_recurring_invoices manage_recurring_invoices() except Exception, e: scheduler.log('manage_recurring_invoices') def execute_daily(): """email digest""" try: from setup.doctype.email_digest.email_digest import send send() except Exception, e: scheduler.log('email_digest.send') def execute_weekly(): pass def execute_monthly():
* get support email * recurring invoice """ try: from support.doctype.support_ticket import get_support_mails get_support_mails() except Exception, e: scheduler.log("get_support_mails") try: from accounts.doctype.gl_control.gl_control import manage_recurring_invoices manage_recurring_invoices() except Exception, e: scheduler.log("manage_recurring_invoices") def execute_daily(): """email digest""" try: from setup.doctype.email_digest.email_digest import send send() except Exception, e: scheduler.log("email_digest.send") def execute_weekly(): pass