def mail_db_order(self, instance, mail_action, personnel, source_app): mail_list = self.get_mail_list(instance) data_dict = copy.deepcopy(instance.__dict__) for field in ['_state', 'createtime', 'updatetime']: data_dict.pop(field) send_mail.delay(mail_list=mail_list, personnel=personnel.username, instance_id=instance.id, remark=instance.remark, status=instance.status, data_dict=data_dict, source_app=source_app, desc_cn=mail_action.desc_cn)
def mail_inception(self, instance, mail_action, personnel, source_app): if (instance.env == self.env_prd) and mail_action.value: mail_list = self.get_mail_list(instance) send_mail.delay( mail_list=mail_list, personnel=personnel.username, instance_id=instance.id, remark=instance.remark, sql_content=instance.sql_content, db_name=instance.db.name, status=instance.status, source_app=source_app, desc_cn=mail_action.desc_cn )
def mail(self, sqlobj, mailtype): if sqlobj.env == self.env_prd: # 线上环境,发邮件提醒 username = self.request.user.username treater = sqlobj.treater # 执行人 commiter = sqlobj.commiter # 提交人 mailto_users = [treater, commiter] mailto_users = list( set(mailto_users)) # 去重(避免提交人和执行人是同一人,每次收2封邮件的bug) mailto_list = [ u.email for u in User.objects.filter(username__in=mailto_users) ] # 发送邮件,并判断结果 send_mail.delay(mailto_list, username, sqlobj.id, sqlobj.remark, mailtype, sqlobj.sql_content, sqlobj.db.name)
def mail(self, sqlobj, mail_type): mail_action = MailActions.objects.get(name=mail_type) if (sqlobj.env == self.env_prd) and mail_action.value: user = self.request.user treater = sqlobj.treater commiter = sqlobj.commiter admin_mail = user.admin_mail mailto_users = [treater, commiter, admin_mail] mailto_users = list(set(mailto_users)) mailto_list = [ u.email for u in User.objects.filter(username__in=mailto_users) ] send_mail.delay(mailto_list, user.username, sqlobj.id, sqlobj.remark, mail_type, sqlobj.sql_content, sqlobj.db.name)
def mail(self, instance, mail_type, personnel): try: mail_action = MailActions.objects.get(name=mail_type) except Exception: return if (instance.env == self.env_prd) and mail_action.value: commiter = instance.commiter treater = instance.treater user = User.objects.get(username=commiter) admin_mail = user.admin_mail.username if user.admin_mail else None mail_users = [commiter, treater, admin_mail] mail_list_extend = self.get_extend_mail_list(user) mail_list = [ u.email for u in User.objects.filter(username__in=mail_users) ] mail_list.extend(mail_list_extend) mail_list = list(set(mail_list)) send_mail.delay(mail_list, personnel.username, instance.id, instance.remark, mail_type, instance.sql_content, instance.db.name)