def build_subsribe_query(subscribe_id): try: subscribe = Subscribe.objects.get(pk=subscribe_id) except Exception: raise Exception("Subscribe not found") usersubscribes = UserSubscribes.objects.filter(subscribe=subscribe) subscribe.last_send_date = datetime.now() if usersubscribes.count() > 0: objects = subscribe.get_modelname().objects.all() data_objects = serializers.serialize("json", objects) message = {"objects": json.loads(data_objects)} mail_ids = [] for usersub in usersubscribes: data_user = {"unsubscribe": usersub.unsubscribe_link, "username": usersub.user.username} vars = message vars.update({"user": data_user}) mail = create_mailqueue( subject=subscribe.subject, template=subscribe.message, send_to=usersub.user.email, content_type=subscribe.content_type, message=vars, ) mail_ids.append(mail.id) send_concrete_mailqueue.delay(mail_ids)
def send_email_message(subject,template,send_to,content_type,message=None,send_from=None): email = create_mailqueue(subject,template,send_to,content_type,message,) connection = None try: connection = mail.get_connection(fail_silently=True) connection.open() msg = email.send_email(connection) try: msg.send() email.delete() except Exception: raise('MESSAGE %s CAN NOT SENDED'%email.id) finally: connection.close()
def create_sometime_subscribe(self,users): content_type = self.content_type if self.content_type == 'html' else 'plain' template = load_template(content_type,type='sometime') self.template = template self.save() if users is not None: message = {'message':self.message} mail_ids = [] for user in users: data_user = {'username':user.username} vars = message vars.update({'user':data_user}) mail = create_mailqueue(subject=self.subject,template=self.template,send_to=user.email, content_type=self.content_type,message=vars) mail_ids.append(mail.id) send_concrete_mailqueue.delay(mail_ids) if self.delete_after_sending: self.delete() return self