diff --git a/backend/apps/pisadmin/basicinfo/migrations/0004_emailnotice.py b/backend/apps/pisadmin/basicinfo/migrations/0004_emailnotice.py new file mode 100644 index 0000000..9f4d718 --- /dev/null +++ b/backend/apps/pisadmin/basicinfo/migrations/0004_emailnotice.py @@ -0,0 +1,49 @@ +# Generated by Django 4.2.14 on 2026-03-25 17:25 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('basicinfo', '0003_systemnorule'), + ] + + operations = [ + migrations.CreateModel( + name='EmailNotice', + fields=[ + ('id', models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id')), + ('description', models.CharField(blank=True, help_text='描述', max_length=255, null=True, verbose_name='描述')), + ('modifier', models.CharField(blank=True, help_text='修改人', max_length=255, null=True, verbose_name='修改人')), + ('dept_belong_id', models.CharField(blank=True, help_text='数据归属部门', max_length=255, null=True, verbose_name='数据归属部门')), + ('update_datetime', models.DateTimeField(auto_now=True, help_text='修改时间', null=True, verbose_name='修改时间')), + ('create_datetime', models.DateTimeField(auto_now_add=True, help_text='创建时间', null=True, verbose_name='创建时间')), + ('subject', models.CharField(max_length=256, verbose_name='邮件主题')), + ('body', models.TextField(blank=True, null=True, verbose_name='邮件正文')), + ('to_emails', models.JSONField(default=list, verbose_name='收件人')), + ('cc_emails', models.JSONField(default=list, verbose_name='抄送')), + ('bcc_emails', models.JSONField(default=list, verbose_name='密送')), + ('attachments', models.JSONField(default=list, verbose_name='附件')), + ('biz_type', models.CharField(blank=True, max_length=64, null=True, verbose_name='业务类型')), + ('biz_id', models.CharField(blank=True, max_length=128, null=True, verbose_name='业务标识')), + ('status', models.CharField(choices=[('pending', 'pending'), ('sending', 'sending'), ('success', 'success'), ('failed', 'failed')], db_index=True, default='pending', max_length=16, verbose_name='发送状态')), + ('sent_at', models.DateTimeField(blank=True, null=True, verbose_name='发送时间')), + ('message_id', models.CharField(blank=True, max_length=128, null=True, verbose_name='消息ID')), + ('last_error', models.TextField(blank=True, null=True, verbose_name='失败原因')), + ('payload', models.JSONField(default=dict, verbose_name='发送参数')), + ('response', models.JSONField(default=dict, verbose_name='服务端响应')), + ('retry_count', models.IntegerField(default=0, verbose_name='重试次数')), + ('creator', models.ForeignKey(db_constraint=False, help_text='创建人', null=True, on_delete=django.db.models.deletion.SET_NULL, related_query_name='creator_query', to=settings.AUTH_USER_MODEL, verbose_name='创建人')), + ], + options={ + 'verbose_name': '邮件通知', + 'verbose_name_plural': '邮件通知', + 'db_table': 'pis_proc_email_notice', + 'ordering': ('-update_datetime', '-id'), + }, + ), + ] diff --git a/backend/conf/env.py b/backend/conf/env.py index 3be8fbe..055b4ed 100644 --- a/backend/conf/env.py +++ b/backend/conf/env.py @@ -48,3 +48,22 @@ LOGIN_NO_CAPTCHA_AUTH = True ALLOWED_HOSTS = ["*"] # 列权限中排除App应用 COLUMN_EXCLUDE_APPS = [] + + +# ================================================= # +# ****************** 邮件 配置 ******************* # +# ================================================= # +# 发送邮箱地址(From 显示) +EMAIL_FROM = "eip@avc.co" +# SMTP 登录账号(服务器不支持认证,留空) +EMAIL_HOST_USER = "" +# SMTP 登录密码/授权码(服务器不支持认证,留空) +EMAIL_HOST_PASSWORD = "" +# SMTP 服务器地址 +EMAIL_HOST = "mailflow.avc.co" +# SMTP 端口 +EMAIL_PORT = 25 +# 是否使用 SSL(如果走 STARTTLS,将 EMAIL_USE_SSL 设为 False,EMAIL_USE_TLS=True) +# 服务器不支持STARTTLS,使用纯明文连接 +EMAIL_USE_SSL = False +EMAIL_USE_TLS = False \ No newline at end of file