You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DIP/docs/MAIL_PROCESSING_STABILIZATI...

59 lines
2.0 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Mail Processing Stabilization Phase NEW Camel mail route
This patch adds a NEW-runtime Camel route for mail ingestion that is similar in purpose to the legacy `MailRoute`, but implemented only in the NEW code path (`at.procon.dip.*`).
## Scope
- runtime mode: `NEW` only
- entrypoint: Camel mail consumer route
- downstream handling: `DocumentIngestionGateway` with `SourceType.MAIL`
- no legacy profile/config/code changes
## Main classes
- `at.procon.dip.ingestion.camel.GenericMailIngestionRoute`
- `at.procon.dip.ingestion.mail.MailServerEndpointUriFactory`
- `at.procon.dip.ingestion.mail.CamelMailServerEndpointUriFactory`
- `at.procon.dip.ingestion.mail.MailServerProtocol`
## Configuration
Configured under `dip.ingestion.mail-route` in `application-new.yml`.
Supported protocols currently exposed through the generic endpoint factory:
- `IMAP`
- `IMAPS`
- `POP3`
- `POP3S`
This keeps the route provider/protocol-agnostic at the configuration level while still using Apache Camel mail endpoints underneath.
## Behavior
When enabled, the route:
1. consumes messages from the configured mail endpoint
2. serializes each provider message to raw MIME bytes
3. extracts basic provider/provenance attributes
4. builds a `SourceDescriptor` with `SourceType.MAIL`
5. delegates the actual parsing/import/attachment handling to the existing NEW `MailDocumentIngestionAdapter`
## Provenance attributes added by the route
The route enriches the `SourceDescriptor.attributes` map with:
- `providerType`
- `providerProtocol`
- `providerAccountKey`
- `providerFolderKey`
- `providerMessageKey` (when available from Camel headers)
- `providerThreadKey` (when available)
- `messageId`
- `subject`
- `from`
## Notes
- The route intentionally does **not** depend on `TedProcessorProperties`.
- The route is designed for the NEW runtime only.
- The mail import behavior still relies on the NEW `MailDocumentIngestionAdapter` for MIME parsing and attachment import.
- This step does not add replay/reprocessing yet.