Files
paperlessmanager/paperless-backend/src/email/email.module.ts
T
bjoernpoettkerandClaude Opus 5.5 797cbb9b71
Build and Push Multi-Platform Images / build-and-push (push) Successful in 45s
fix(mail): Duplikate auch bei neu erzeugten PDFs erkennen
Absender erzeugen PDFs beim erneuten Versand oft neu (andere
Erstellungszeit/Dokument-ID), dadurch unterscheidet sich die Checksumme
und die Duplikatprüfung griff nicht (z.B. Mail 7071 vs. 7072).

- Neuer Text-Fingerprint (SHA-256 über normalisierten PDF-Text via
  pdf-parse) in Attachments.ContentFingerprint, inkl. Migration und Index
- Wird beim Mail-Abruf berechnet; Altbestand füllt ein Hintergrund-
  Backfill beim Start auf, fehlende Werte werden bei Bedarf nachberechnet
- Duplikatprüfung und Import-Sperre berücksichtigen Anhänge mit gleichem
  Inhalt, die importiert sind oder gerade importiert werden
- Jest braucht für pdf-parse --experimental-vm-modules (test-Skripte)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:27:31 +02:00

40 lines
1.4 KiB
TypeScript

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Email } from '../database/entities/email.entity';
import { Attachment } from '../database/entities/attachment.entity';
import { Content } from '../database/entities/content.entity';
import { EmailController } from './email.controller';
import { PaperlessModule } from '../paperless/paperless.module';
import { EmailPageCacheService } from './email-page-cache.service';
import { EmailImportController } from './email-import.controller';
import { EmailImportService } from './email-import.service';
import { ImapFolderService } from './imap-folder.service';
import { AttachmentFingerprintService } from './attachment-fingerprint.service';
import { CorrespondentEmailMapping } from '../database/entities/correspondent-email-mapping.entity';
import { Task } from '../database/entities/task.entity';
import { PreprocessingModule } from '../preprocessing/preprocessing.module';
@Module({
imports: [
TypeOrmModule.forFeature([
Email,
Attachment,
Content,
CorrespondentEmailMapping,
Task,
]),
PaperlessModule,
PreprocessingModule,
],
controllers: [EmailController, EmailImportController],
providers: [
EmailImportService,
EmailPageCacheService,
ImapFolderService,
AttachmentFingerprintService,
],
exports: [EmailPageCacheService],
})
export class EmailModule {}