mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
integrated the new consumer with the mail client.
This commit is contained in:
parent
fef6dd38f9
commit
53cfa5a1c9
@ -1,8 +1,11 @@
|
|||||||
import email
|
import os
|
||||||
from datetime import datetime, timedelta, date
|
import tempfile
|
||||||
from email.parser import BytesParser
|
from datetime import timedelta, date
|
||||||
|
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
|
from django_q.tasks import async_task
|
||||||
from imap_tools import MailBox, MailBoxUnencrypted, AND, MailMessageFlags
|
from imap_tools import MailBox, MailBoxUnencrypted, AND, MailMessageFlags
|
||||||
|
|
||||||
from documents.models import Correspondent
|
from documents.models import Correspondent
|
||||||
@ -117,7 +120,10 @@ def handle_message(message, rule):
|
|||||||
"slug": slugify(corerspondent_name)
|
"slug": slugify(corerspondent_name)
|
||||||
})[0]
|
})[0]
|
||||||
elif rule.assign_correspondent_from == MailRule.CORRESPONDENT_FROM_NAME:
|
elif rule.assign_correspondent_from == MailRule.CORRESPONDENT_FROM_NAME:
|
||||||
corerspondent_name = message.from_values.name if message.from_values and message.from_values.name else message.from_
|
corerspondent_name = message.from_values['name'] \
|
||||||
|
if (message.from_values and
|
||||||
|
'name' in message.from_values and
|
||||||
|
message.from_values['name']) else message.from_
|
||||||
correspondent = Correspondent.objects.get_or_create(
|
correspondent = Correspondent.objects.get_or_create(
|
||||||
name=corerspondent_name, defaults={
|
name=corerspondent_name, defaults={
|
||||||
"slug": slugify(corerspondent_name)
|
"slug": slugify(corerspondent_name)
|
||||||
@ -146,4 +152,21 @@ def handle_message(message, rule):
|
|||||||
"'{}'."
|
"'{}'."
|
||||||
.format(att.filename, title, correspondent, tag, doc_type))
|
.format(att.filename, title, correspondent, tag, doc_type))
|
||||||
|
|
||||||
|
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
||||||
|
|
||||||
|
_, temp_filename = tempfile.mkstemp(prefix="paperless-mail-", dir=settings.SCRATCH_DIR)
|
||||||
|
|
||||||
|
with open(temp_filename, 'wb') as f:
|
||||||
|
f.write(att.payload)
|
||||||
|
|
||||||
|
async_task(
|
||||||
|
"documents.tasks.consume_file",
|
||||||
|
file=temp_filename,
|
||||||
|
original_filename=att.filename,
|
||||||
|
force_title=title,
|
||||||
|
force_correspondent_id=correspondent.id if correspondent else None,
|
||||||
|
force_document_type_id=doc_type.id if doc_type else None,
|
||||||
|
force_tag_ids=[tag.id] if tag else None
|
||||||
|
)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
Loading…
x
Reference in New Issue
Block a user