mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-19 10:19:27 -05:00
Use self-contained send_email method
This commit is contained in:
parent
93846e2f43
commit
fdf06f0532
@ -8,9 +8,6 @@ import tempfile
|
|||||||
import urllib
|
import urllib
|
||||||
import zipfile
|
import zipfile
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from email.encoders import encode_base64
|
|
||||||
from email.mime.base import MIMEBase
|
|
||||||
from email.utils import encode_rfc2231
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from time import mktime
|
from time import mktime
|
||||||
from unicodedata import normalize
|
from unicodedata import normalize
|
||||||
@ -21,7 +18,6 @@ import pathvalidate
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.core.mail import EmailMessage
|
|
||||||
from django.db import connections
|
from django.db import connections
|
||||||
from django.db.migrations.loader import MigrationLoader
|
from django.db.migrations.loader import MigrationLoader
|
||||||
from django.db.migrations.recorder import MigrationRecorder
|
from django.db.migrations.recorder import MigrationRecorder
|
||||||
@ -111,6 +107,7 @@ from documents.filters import ObjectOwnedPermissionsFilter
|
|||||||
from documents.filters import ShareLinkFilterSet
|
from documents.filters import ShareLinkFilterSet
|
||||||
from documents.filters import StoragePathFilterSet
|
from documents.filters import StoragePathFilterSet
|
||||||
from documents.filters import TagFilterSet
|
from documents.filters import TagFilterSet
|
||||||
|
from documents.mail import send_email
|
||||||
from documents.matching import match_correspondents
|
from documents.matching import match_correspondents
|
||||||
from documents.matching import match_document_types
|
from documents.matching import match_document_types
|
||||||
from documents.matching import match_storage_paths
|
from documents.matching import match_storage_paths
|
||||||
@ -1058,36 +1055,17 @@ class DocumentViewSet(
|
|||||||
):
|
):
|
||||||
return HttpResponseBadRequest("Invalid email address found")
|
return HttpResponseBadRequest("Invalid email address found")
|
||||||
|
|
||||||
email = EmailMessage(
|
send_email(
|
||||||
subject=request.data.get("subject"),
|
subject=request.data.get("subject"),
|
||||||
body=request.data.get("message"),
|
body=request.data.get("message"),
|
||||||
to=addresses,
|
to=addresses,
|
||||||
)
|
attachment=(
|
||||||
attachment = (
|
|
||||||
doc.archive_path
|
doc.archive_path
|
||||||
if use_archive_version and doc.has_archive_version
|
if use_archive_version and doc.has_archive_version
|
||||||
else doc.source_path
|
else doc.source_path
|
||||||
|
),
|
||||||
|
attachment_mime_type=doc.mime_type,
|
||||||
)
|
)
|
||||||
with open(attachment, "rb") as f:
|
|
||||||
file_content = f.read()
|
|
||||||
|
|
||||||
main_type, sub_type = (
|
|
||||||
doc.mime_type.split("/", 1)
|
|
||||||
if doc.mime_type
|
|
||||||
else ("application", "octet-stream")
|
|
||||||
)
|
|
||||||
mime_part = MIMEBase(main_type, sub_type)
|
|
||||||
mime_part.set_payload(file_content)
|
|
||||||
|
|
||||||
encode_base64(mime_part)
|
|
||||||
|
|
||||||
mime_part.add_header(
|
|
||||||
"Content-Disposition",
|
|
||||||
f'attachment; filename="{encode_rfc2231(str(attachment.name))}"',
|
|
||||||
)
|
|
||||||
|
|
||||||
email.attach(mime_part)
|
|
||||||
email.send()
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"Sent document {doc.id} via email to {addresses}",
|
f"Sent document {doc.id} via email to {addresses}",
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user