mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	integrated the new consumer with the mail client.
This commit is contained in:
		| @@ -1,8 +1,11 @@ | ||||
| import email | ||||
| from datetime import datetime, timedelta, date | ||||
| from email.parser import BytesParser | ||||
| import os | ||||
| import tempfile | ||||
| from datetime import timedelta, date | ||||
|  | ||||
|  | ||||
| from django.conf import settings | ||||
| from django.utils.text import slugify | ||||
| from django_q.tasks import async_task | ||||
| from imap_tools import MailBox, MailBoxUnencrypted, AND, MailMessageFlags | ||||
|  | ||||
| from documents.models import Correspondent | ||||
| @@ -117,7 +120,10 @@ def handle_message(message, rule): | ||||
|                 "slug": slugify(corerspondent_name) | ||||
|             })[0] | ||||
|     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( | ||||
|             name=corerspondent_name, defaults={ | ||||
|                 "slug": slugify(corerspondent_name) | ||||
| @@ -146,4 +152,21 @@ def handle_message(message, rule): | ||||
|                   "'{}'." | ||||
|                   .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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jonas Winkler
					Jonas Winkler