save raw_mails as file
This commit is contained in:
parent
0c4995db2b
commit
4272aab643
4 changed files with 40 additions and 2 deletions
36
core/mail/migrations/0006_email_raw_file.py
Normal file
36
core/mail/migrations/0006_email_raw_file.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
# Generated by Django 4.2.7 on 2024-11-08 20:37
|
||||
from django.core.files.base import ContentFile
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mail', '0005_alter_eventaddress_event'),
|
||||
]
|
||||
|
||||
def move_raw_mails_to_file(apps, schema_editor):
|
||||
Email = apps.get_model('mail', 'Email')
|
||||
for email in Email.objects.all():
|
||||
raw_content = email.raw
|
||||
email.raw_file = ContentFile(raw_content)
|
||||
email.raw = None
|
||||
email.save()
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='email',
|
||||
name='raw_file',
|
||||
field=models.FileField(null=True, upload_to='raw_mail/'),
|
||||
),
|
||||
migrations.RunPython(move_raw_mails_to_file),
|
||||
migrations.RemoveField(
|
||||
model_name='email',
|
||||
name='raw',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='email',
|
||||
name='raw_file',
|
||||
field=models.FileField(upload_to='raw_mail/'),
|
||||
),
|
||||
]
|
|
@ -18,7 +18,7 @@ class Email(SoftDeleteModel):
|
|||
recipient = models.CharField(max_length=255)
|
||||
reference = models.CharField(max_length=255, null=True, unique=True)
|
||||
in_reply_to = models.CharField(max_length=255, null=True)
|
||||
raw = models.TextField()
|
||||
raw_file = models.FileField(upload_to='raw_mail/')
|
||||
issue_thread = models.ForeignKey(IssueThread, models.SET_NULL, null=True, related_name='emails')
|
||||
event = models.ForeignKey(Event, models.SET_NULL, null=True)
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ def receive_email(envelope, log=None):
|
|||
|
||||
email = Email.objects.create(
|
||||
sender=sender, recipient=recipient, body=body, subject=subject, reference=header_message_id,
|
||||
in_reply_to=header_in_reply_to, raw=envelope.content, event=target_event,
|
||||
in_reply_to=header_in_reply_to, raw_file=ContentFile(envelope.content), event=target_event,
|
||||
issue_thread=active_issue_thread)
|
||||
for attachment in attachments:
|
||||
email.attachments.add(attachment)
|
||||
|
|
|
@ -73,3 +73,5 @@ watchfiles==0.21.0
|
|||
websockets==12.0
|
||||
yarl==1.9.4
|
||||
zope.interface==6.1
|
||||
django-prometheus==2.3.1
|
||||
prometheus_client==0.21.0
|
||||
|
|
Loading…
Reference in a new issue