コード例 #1
0
def execute_daily():
	"""email digest"""
	try:
		from setup.doctype.email_digest.email_digest import send
		send()
	except Exception, e:
		scheduler.log('email_digest.send')
コード例 #2
0
ファイル: receive.py プロジェクト: saurabh6790/OFF-RISLIB
    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)
コード例 #3
0
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')
コード例 #4
0
	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()
コード例 #5
0
    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()
コード例 #6
0
ファイル: receive.py プロジェクト: appost/wnframework
	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()
コード例 #7
0
    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()
コード例 #8
0
ファイル: receive.py プロジェクト: Halfnhav/wnframework
	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)
コード例 #9
0
ファイル: schedule_handlers.py プロジェクト: mtarin/erpnext
def run_fn(fn):
    try:
        fn()
    except Exception, e:
        scheduler.log(fn.func_name)
コード例 #10
0
def run_fn(fn):
    try:
        fn()
    except Exception, e:
        scheduler.log(fn.func_name)
コード例 #11
0
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():
コード例 #12
0
ファイル: schedule_handlers.py プロジェクト: nijil/erpnext
		* 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