def fire_email_subjob(request,subjob_key): if not getConfigBool('ENABLE_MAIL_JOBS',False): logging.info('ENABLE_MAIL_JOBS != True, ignore') return HttpResponse('disabled') sub_job = EMailSubJob.get(subjob_key) if sub_job is None: logging.info('no sub_job') raise Http404 job = EMailJob.get(sub_job.parent_key()) if job is None: logging.info('no job') raise Http404 job_data = EMailJobData.all().ancestor(job).get() if job_data is None: logging.info('no job_data') raise Http404 try: email = EmailMessage(job_data.data) email.sender = job_data.sender email.to = job_data.sender email.check_initialized() except: logging.info("can't init email! %s"%sys.exc_info()[1]) sub_job.status = 'error' sub_job.status_info = "can't init email message - %s"%sys.exc_info()[1] sub_job.save() return HttpResponse('error') logging.info('processing mail sub job:%s'%sub_job) sub_job.status = 'send' sub_job.save() for e in sub_job.emails: logging.info('sending email to %s'%e) try: email.to = e email.send() sub_job.emails_done.extend([e]) except: logging.info("can't init email! %s"%sys.exc_info()[1]) sub_job.emails_error.extend([e]) sub_job.status = 'done' sub_job.save() logging.info('result:%s'%sub_job) return HttpResponse('ok')