Fix: use MIMEBase for email attachments (#8762)

This commit is contained in:
shamoon
2025-01-16 10:48:19 -08:00
committed by GitHub
parent 283bcb4c91
commit a32077566b
2 changed files with 65 additions and 8 deletions

View File

@@ -12,7 +12,6 @@ from celery.signals import task_postrun
from celery.signals import task_prerun
from django.conf import settings
from django.contrib.auth.models import User
from django.core.mail import EmailMessage
from django.db import DatabaseError
from django.db import close_old_connections
from django.db import models
@@ -30,6 +29,7 @@ from documents.data_models import DocumentMetadataOverrides
from documents.file_handling import create_source_path_directory
from documents.file_handling import delete_empty_directories
from documents.file_handling import generate_unique_filename
from documents.mail import send_email
from documents.models import Correspondent
from documents.models import CustomField
from documents.models import CustomFieldInstance
@@ -972,17 +972,13 @@ def run_workflows(
doc_url,
)
try:
email = EmailMessage(
n_messages = send_email(
subject=subject,
body=body,
to=action.email.to.split(","),
attachment=original_file if action.email.include_document else None,
attachment_mime_type=document.mime_type,
)
if action.email.include_document:
# Something could be renaming the file concurrently so it can't be attached
with FileLock(settings.MEDIA_LOCK):
document.refresh_from_db()
email.attach_file(original_file)
n_messages = email.send()
logger.debug(
f"Sent {n_messages} notification email(s) to {action.email.to}",
extra={"group": logging_group},