[ 
https://issues.apache.org/jira/browse/CAMEL-25534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Federico Mariani reassigned CAMEL-25534:
----------------------------------------

    Assignee: Federico Mariani

> camel-mail - subject option description still says the Subject header takes 
> precedence, but useHeaderSubject defaults to false
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25534
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25534
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-mail
>    Affects Versions: 4.22.1
>            Reporter: Federico Mariani
>            Assignee: Federico Mariani
>            Priority: Major
>
> Follow-up to CAMEL-24848, which corrected the useHeader* descriptions on main 
> and camel-4.22.x. The description of the {{subject}} endpoint option was not 
> touched and still states the opposite of the actual behaviour since 
> CAMEL-23747 made {{useHeaderSubject}} default to false.
> h3. Reproduction
> Catalog metadata for smtp (same in imap/imaps/pop3/pop3s/smtps), on 
> camel-4.22.1, camel-4.22.x and main:
> {noformat}
> "subject": { ... "description": "The Subject of the message being sent. Note: 
> Setting the subject in the header takes precedence over this option." }
> "useHeaderSubject": { ... "defaultValue": false, ... }
> {noformat}
> A route that sets the header and leaves the URI without {{subject}}:
> {code}
> from("direct:a").setHeader("subject", 
> constant("Alert")).to("smtp://[email protected]");
> {code}
> sends a mail with an empty subject, because 
> {{MailBinding.appendHeadersFromCamelMessage}} only copies the Subject header 
> when {{configuration.isUseHeaderSubject()}} is true. With {{subject=X}} on 
> the URI and a Subject header, X wins, again the opposite of the note.
> In an evaluation of coding agents (Claude Code and IBM Bob) on Mule-to-Camel 
> migration tasks, 25 sessions read this description through camel-jbang-mcp 
> 4.22.1 ({{camel_catalog_component_doc smtp}}); at least one concluded from it 
> that the Subject header overrides the URI subject, and a mail sent with an 
> empty subject (Subject set only as a header) was the most frequent remaining 
> defect in the generated routes (10 sessions).
> h3. Cause
> * 
> {{components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java}},
>  javadoc of {{setSubject}}: "Note: Setting the subject in the header takes 
> precedence over this option."
> * {{components/camel-mail/src/main/docs/mail-component.adoc}}, section on the 
> message content: "The subject of the MimeMessage can be configured using a 
> header property on the IN message" with a {{setHeader("subject", ...)}} 
> example, followed by "The same applies for other MimeMessage headers such as 
> recipients, so you can use a header property as To" and a ProducerTemplate 
> example with To/From/Subject headers. With the 4.22 defaults none of these 
> headers are used unless the matching useHeader* option is enabled.
> * {{MailBinding.populateMailMessage}} code comments ("the headers win UNLESS 
> useHeaderSubject is set to false", same for replyTo) describe the old default.
> h3. Fix
> * Change the {{subject}} javadoc to something like: "The Subject of the 
> message being sent. The Subject message header is ignored unless 
> useHeaderSubject=true, in which case it overrides this option." and 
> regenerate the component/catalog JSON and the endpoint DSL builders.
> * In mail-component.adoc, add {{useHeaderSubject=true}} (and 
> {{useHeaderRecipients=true}}/{{useHeaderFrom=true}} for the To/From example) 
> to the examples, or state next to them that the headers are only honoured 
> when the useHeader* options are enabled.
> * Update the two comments in {{MailBinding.populateMailMessage}}.
> Documentation only, no runtime change. A backport to camel-4.22.x alongside 
> CAMEL-24848 would keep the 4.22.2 catalog consistent.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to