Files
CyberPanel/emailDelivery/models.py
master3395 9543c8396e fix: Rspamd installer, Email Delivery migrations, dns sys.path
- mailUtilities: insert CyberCP first on sys.path (dnspython dns shadowing); Rspamd log under /var/log/cyberpanel; log before ServiceManager; dnf on EL8/9; append package stderr
- emailPremium: Rspamd admin UI without cloud addon gate; JsonResponse; fetchRspamdSettings unlocked
- emailDelivery: AutoField PKs; 0001_initial SeparateDatabaseAndState for int FK to loginSystem
2026-04-09 22:39:49 +02:00

48 lines
2.0 KiB
Python

from django.db import models
from loginSystem.models import Administrator
class CyberMailAccount(models.Model):
# int(11) PK/FK to match legacy loginSystem_administrator.id (not DEFAULT_AUTO_FIELD BigAutoField)
id = models.AutoField(primary_key=True)
admin = models.OneToOneField(Administrator, on_delete=models.CASCADE, related_name='cybermail_account')
platform_account_id = models.IntegerField(null=True)
api_key = models.CharField(max_length=255, blank=True)
email = models.CharField(max_length=255)
plan_name = models.CharField(max_length=100, default='Free')
plan_slug = models.CharField(max_length=50, default='free')
emails_per_month = models.IntegerField(default=15000)
is_connected = models.BooleanField(default=False)
relay_enabled = models.BooleanField(default=False)
smtp_credential_id = models.IntegerField(null=True)
smtp_username = models.CharField(max_length=255, blank=True)
smtp_host = models.CharField(max_length=255, default='mail.cyberpersons.com')
smtp_port = models.IntegerField(default=587)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'cybermail_accounts'
def __str__(self):
return f"CyberMail Account for {self.admin.userName}"
class CyberMailDomain(models.Model):
id = models.AutoField(primary_key=True)
account = models.ForeignKey(CyberMailAccount, on_delete=models.CASCADE, related_name='domains')
domain = models.CharField(max_length=255)
platform_domain_id = models.IntegerField(null=True)
status = models.CharField(max_length=50, default='pending')
spf_verified = models.BooleanField(default=False)
dkim_verified = models.BooleanField(default=False)
dmarc_verified = models.BooleanField(default=False)
dns_configured = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'cybermail_domains'
def __str__(self):
return f"CyberMail Domain: {self.domain}"