This is an automated email from the ASF dual-hosted git repository.

nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 1434604ccb606de97843e8f87dacf69fac1d58b1
Author: Nicolas Filotto <[email protected]>
AuthorDate: Thu Mar 31 11:36:10 2022 +0200

    CAMEL-17792: Add doc about the message headers of camel-mail
---
 .../org/apache/camel/component/mail/imap.json      | 13 +++++++++++
 .../org/apache/camel/component/mail/imaps.json     | 13 +++++++++++
 .../org/apache/camel/component/mail/pop3.json      | 13 +++++++++++
 .../org/apache/camel/component/mail/pop3s.json     | 13 +++++++++++
 .../org/apache/camel/component/mail/smtp.json      | 13 +++++++++++
 .../org/apache/camel/component/mail/smtps.json     | 13 +++++++++++
 .../camel-mail/src/main/docs/mail-component.adoc   |  6 +++--
 .../apache/camel/component/mail/MailBinding.java   | 10 ++++----
 .../apache/camel/component/mail/MailConstants.java | 27 ++++++++++++++++++++++
 .../apache/camel/component/mail/MailConsumer.java  |  6 ++---
 .../apache/camel/component/mail/MailEndpoint.java  |  2 +-
 .../camel/component/mail/MailComponentTest.java    | 10 ++++----
 .../component/mail/MailCustomContentTypeTest.java  |  7 +++---
 .../camel/component/mail/MailReplyToTest.java      |  6 ++---
 .../apache/camel/component/mail/MailRouteTest.java |  4 ++--
 .../SslContextParametersMailRouteTest.java         |  5 ++--
 16 files changed, 135 insertions(+), 26 deletions(-)

diff --git 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
index 38c7795..26c09db 100644
--- 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
+++ 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json
@@ -68,6 +68,19 @@
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable usage of global SSL context parameters." },
     "username": { "kind": "property", "displayName": "Username", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The username for login. See also 
setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "To" 
},
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" 
},
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be copied to a mail 
folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be moved to a mail 
folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": 
"common", "label": "", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The mail server host name" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", 
"label": "", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The port number of the mail server" },
diff --git 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
index 2d87595..753159a 100644
--- 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
+++ 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json
@@ -68,6 +68,19 @@
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable usage of global SSL context parameters." },
     "username": { "kind": "property", "displayName": "Username", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The username for login. See also 
setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "To" 
},
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" 
},
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be copied to a mail 
folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be moved to a mail 
folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": 
"common", "label": "", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The mail server host name" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", 
"label": "", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The port number of the mail server" },
diff --git 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
index 62e9439..5b1478a 100644
--- 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
+++ 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json
@@ -68,6 +68,19 @@
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable usage of global SSL context parameters." },
     "username": { "kind": "property", "displayName": "Username", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The username for login. See also 
setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "To" 
},
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" 
},
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be copied to a mail 
folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be moved to a mail 
folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": 
"common", "label": "", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The mail server host name" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", 
"label": "", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The port number of the mail server" },
diff --git 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
index c5616ae..3e17ef2 100644
--- 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
+++ 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json
@@ -68,6 +68,19 @@
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable usage of global SSL context parameters." },
     "username": { "kind": "property", "displayName": "Username", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The username for login. See also 
setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "To" 
},
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" 
},
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be copied to a mail 
folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be moved to a mail 
folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": 
"common", "label": "", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The mail server host name" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", 
"label": "", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The port number of the mail server" },
diff --git 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
index 81cf60f..b32937f 100644
--- 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
+++ 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json
@@ -68,6 +68,19 @@
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable usage of global SSL context parameters." },
     "username": { "kind": "property", "displayName": "Username", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The username for login. See also 
setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "To" 
},
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" 
},
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be copied to a mail 
folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be moved to a mail 
folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": 
"common", "label": "", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The mail server host name" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", 
"label": "", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The port number of the mail server" },
diff --git 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
index a2ee5d0..7e8d508 100644
--- 
a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
+++ 
b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json
@@ -68,6 +68,19 @@
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use 
Global Ssl Context Parameters", "group": "security", "label": "security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Enable usage of global SSL context parameters." },
     "username": { "kind": "property", "displayName": "Username", "group": 
"security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The username for login. See also 
setAuthenticator(MailAuthenticator)." }
   },
+  "headers": {
+    "Subject": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Subject" },
+    "From": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"From" },
+    "To": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "To" 
},
+    "Cc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" 
},
+    "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": 
"", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Bcc" },
+    "Reply-To": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Reply to" },
+    "contentType": { "kind": "header", "displayName": "", "group": "common", 
"label": "", "required": false, "javaType": "String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
content type" },
+    "copyTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be copied to a mail 
folder with the given name." },
+    "moveTo": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "After processing a mail message, it can be moved to a mail 
folder with the given name." },
+    "delete": { "kind": "header", "displayName": "", "group": "consumer", 
"label": "consumer", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Deletes the messages after they have been processed." },
+    "CamelMailMessageId": { "kind": "header", "displayName": "", "group": 
"common", "label": "", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The message ID." }
+  },
   "properties": {
     "host": { "kind": "path", "displayName": "Host", "group": "common", 
"label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The mail server host name" },
     "port": { "kind": "path", "displayName": "Port", "group": "common", 
"label": "", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.mail.MailConfiguration", "configurationField": 
"configuration", "description": "The port number of the mail server" },
diff --git a/components/camel-mail/src/main/docs/mail-component.adoc 
b/components/camel-mail/src/main/docs/mail-component.adoc
index 2c6162b..a51c75a 100644
--- a/components/camel-mail/src/main/docs/mail-component.adoc
+++ b/components/camel-mail/src/main/docs/mail-component.adoc
@@ -84,7 +84,9 @@ include::partial$component-endpoint-options.adoc[]
 // endpoint options: START
 
 // endpoint options: END
-
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Sample endpoints
 
@@ -210,7 +212,7 @@ below demonstrates this:
 The same applies for other MimeMessage headers such as recipients, so
 you can use a header property as `To`:
 
-When using the MailProducer the send the mail to
+When using the MailProducer to send the mail to
 server, you should be able to get the message id of the
 
http://java.sun.com/javaee/5/docs/api/javax/mail/internet/MimeMessage.html[MimeMessage]
 with the key `CamelMailMessageId` from the Camel message header.
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
index 936dd05..94290d7 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
@@ -104,7 +104,7 @@ public class MailBinding {
 
         // set the replyTo if it was passed in as an option in the uri. Note: 
if it is in both the URI
         // and headers the headers win.
-        String replyTo = exchange.getIn().getHeader("Reply-To", String.class);
+        String replyTo = 
exchange.getIn().getHeader(MailConstants.MAIL_REPLY_TO, String.class);
         if (replyTo == null) {
             replyTo = endpoint.getConfiguration().getReplyTo();
         }
@@ -153,8 +153,8 @@ public class MailBinding {
     protected String determineContentType(MailConfiguration configuration, 
Exchange exchange) {
         // see if we got any content type set
         String contentType = configuration.getContentType();
-        if (exchange.getIn().getHeader("contentType") != null) {
-            contentType = exchange.getIn().getHeader("contentType", 
String.class);
+        if (exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE) != 
null) {
+            contentType = 
exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE, String.class);
         } else if (exchange.getIn().getHeader(Exchange.CONTENT_TYPE) != null) {
             contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, 
String.class);
         }
@@ -180,8 +180,8 @@ public class MailBinding {
 
         // see if we got any content type set
         String contentType = configuration.getContentType();
-        if (exchange.getIn().getHeader("contentType") != null) {
-            contentType = exchange.getIn().getHeader("contentType", 
String.class);
+        if (exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE) != 
null) {
+            contentType = 
exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE, String.class);
         } else if (exchange.getIn().getHeader(Exchange.CONTENT_TYPE) != null) {
             contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, 
String.class);
         }
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
index 7bc2cdb..4a3e7d9 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java
@@ -16,11 +16,38 @@
  */
 package org.apache.camel.component.mail;
 
+import org.apache.camel.spi.Metadata;
+
 public final class MailConstants {
 
+    @Metadata(description = "Subject", javaType = "String")
+    public static final String MAIL_SUBJECT = "Subject";
+    @Metadata(description = "From", javaType = "String")
+    public static final String MAIL_FROM = "From";
+    @Metadata(description = "To", javaType = "String")
+    public static final String MAIL_TO = "To";
+    @Metadata(description = "Cc", javaType = "String")
+    public static final String MAIL_CC = "Cc";
+    @Metadata(description = "Bcc", javaType = "String")
+    public static final String MAIL_BCC = "Bcc";
+    @Metadata(description = "Reply to", javaType = "String")
+    public static final String MAIL_REPLY_TO = "Reply-To";
+    @Metadata(description = "The content type", javaType = "String")
+    public static final String MAIL_CONTENT_TYPE = "contentType";
+    @Metadata(label = "consumer",
+              description = "After processing a mail message, it can be copied 
to a mail folder with the given name.",
+              javaType = "String")
+    public static final String MAIL_COPY_TO = "copyTo";
+    @Metadata(label = "consumer",
+              description = "After processing a mail message, it can be moved 
to a mail folder with the given name.",
+              javaType = "String")
+    public static final String MAIL_MOVE_TO = "moveTo";
+    @Metadata(label = "consumer", description = "Deletes the messages after 
they have been processed.", javaType = "boolean")
+    public static final String MAIL_DELETE = "delete";
     public static final String MAIL_ALTERNATIVE_BODY = 
"CamelMailAlternativeBody";
     public static final String MAIL_DEFAULT_FOLDER = "INBOX";
     public static final String MAIL_DEFAULT_FROM = "camel@localhost";
+    @Metadata(description = "The message ID.", javaType = "String")
     public static final String MAIL_MESSAGE_ID = "CamelMailMessageId";
     public static final int MAIL_DEFAULT_CONNECTION_TIMEOUT = 30000;
 
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
index 1289f42..3c41fdb 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
@@ -493,9 +493,9 @@ public class MailConsumer extends 
ScheduledBatchPollingConsumer {
             org.apache.camel.Message in = exchange.getIn();
             MailConfiguration config = getEndpoint().getConfiguration();
             // header values override configuration values
-            String copyTo = in.getHeader("copyTo", config.getCopyTo(), 
String.class);
-            String moveTo = in.getHeader("moveTo", config.getMoveTo(), 
String.class);
-            boolean delete = in.getHeader("delete", config.isDelete(), 
boolean.class);
+            String copyTo = in.getHeader(MailConstants.MAIL_COPY_TO, 
config.getCopyTo(), String.class);
+            String moveTo = in.getHeader(MailConstants.MAIL_MOVE_TO, 
config.getMoveTo(), String.class);
+            boolean delete = in.getHeader(MailConstants.MAIL_DELETE, 
config.isDelete(), boolean.class);
 
             copyOrMoveMessageIfRequired(config, mail, copyTo, false);
 
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
index b2e1847..2396fc6 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
@@ -37,7 +37,7 @@ import org.apache.camel.support.ScheduledPollEndpoint;
  */
 @UriEndpoint(firstVersion = "1.0.0", scheme = 
"imap,imaps,pop3,pop3s,smtp,smtps", title = "IMAP,IMAPS,POP3,POP3S,SMTP,SMTPS",
              syntax = "imap:host:port", alternativeSyntax = 
"imap:username:password@host:port",
-             category = { Category.MAIL })
+             category = { Category.MAIL }, headersClass = MailConstants.class)
 public class MailEndpoint extends ScheduledPollEndpoint implements 
HeaderFilterStrategyAware {
 
     @UriParam(defaultValue = "" + MailConsumer.DEFAULT_CONSUMER_DELAY, 
javaType = "java.time.Duration",
diff --git 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
index 3b7aaf2..2e2d833 100644
--- 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
+++ 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
@@ -90,7 +90,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), 
MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
         assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, 
config.getConnectionTimeout());
@@ -114,7 +114,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), 
MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
         assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, 
config.getConnectionTimeout());
@@ -152,7 +152,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), 
MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
     }
@@ -173,7 +173,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isDelete());
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
-        assertEquals("text/plain", config.getContentType(), "contentType");
+        assertEquals("text/plain", config.getContentType(), 
MailConstants.MAIL_CONTENT_TYPE);
         assertEquals(true, config.isUnseen(), "unseen");
         assertFalse(config.isDebugMode());
     }
@@ -197,7 +197,7 @@ public class MailComponentTest extends CamelTestSupport {
         assertFalse(config.isIgnoreUriScheme());
         assertEquals(-1, config.getFetchSize(), "fetchSize");
         assertFalse(config.isUnseen(), "unseen");
-        assertEquals("text/html", config.getContentType(), "contentType");
+        assertEquals("text/html", config.getContentType(), 
MailConstants.MAIL_CONTENT_TYPE);
         assertFalse(config.isDebugMode());
     }
 
diff --git 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
index 364a352..b424527 100644
--- 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
+++ 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
@@ -64,7 +64,7 @@ public class MailCustomContentTypeTest extends 
CamelTestSupport {
     public void testNullBody() throws Exception {
         Mailbox.clearAll();
 
-        template.sendBodyAndHeader("direct:b", null, "contentType", 
"text/plain; charset=iso-8859-1");
+        template.sendBodyAndHeader("direct:b", null, 
MailConstants.MAIL_CONTENT_TYPE, "text/plain; charset=iso-8859-1");
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
@@ -76,7 +76,8 @@ public class MailCustomContentTypeTest extends 
CamelTestSupport {
     public void testSendPlainMailContentTypeInHeader() throws Exception {
         Mailbox.clearAll();
 
-        template.sendBodyAndHeader("direct:b", "Hello World", "contentType", 
"text/plain; charset=iso-8859-1");
+        template.sendBodyAndHeader("direct:b", "Hello World", 
MailConstants.MAIL_CONTENT_TYPE,
+                "text/plain; charset=iso-8859-1");
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
@@ -101,7 +102,7 @@ public class MailCustomContentTypeTest extends 
CamelTestSupport {
         Mailbox.clearAll();
 
         // Camel will fixup the Content-Type if you do not have a space after 
the semi colon
-        template.sendBodyAndHeader("direct:b", "Hello World", "contentType", 
"text/plain;charset=iso-8859-1");
+        template.sendBodyAndHeader("direct:b", "Hello World", 
MailConstants.MAIL_CONTENT_TYPE, "text/plain;charset=iso-8859-1");
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
diff --git 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
index dedae19..8bd9b90 100644
--- 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
+++ 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java
@@ -39,10 +39,10 @@ public class MailReplyToTest extends CamelTestSupport {
 
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
-        mock.expectedHeaderReceived("Reply-To", 
"noReply1@localhost,noReply2@localhost");
+        mock.expectedHeaderReceived(MailConstants.MAIL_REPLY_TO, 
"noReply1@localhost,noReply2@localhost");
         mock.expectedBodiesReceived(body);
 
-        template.sendBodyAndHeader("direct:a", body, "Reply-To", 
"noReply1@localhost,noReply2@localhost");
+        template.sendBodyAndHeader("direct:a", body, 
MailConstants.MAIL_REPLY_TO, "noReply1@localhost,noReply2@localhost");
 
         mock.assertIsSatisfied();
 
@@ -61,7 +61,7 @@ public class MailReplyToTest extends CamelTestSupport {
 
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
-        mock.expectedHeaderReceived("Reply-To", "noReply1@localhost, 
noReply2@localhost");
+        mock.expectedHeaderReceived(MailConstants.MAIL_REPLY_TO, 
"noReply1@localhost, noReply2@localhost");
         mock.expectedBodiesReceived(body);
 
         template.sendBody("direct:b", body);
diff --git 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
index 3bcca89..6aa44c3 100644
--- 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
+++ 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java
@@ -49,7 +49,7 @@ public class MailRouteTest extends CamelTestSupport {
         resultEndpoint.expectedBodiesReceived("hello world!");
 
         Map<String, Object> headers = new HashMap<>();
-        headers.put("reply-to", "route-test-reply@localhost");
+        headers.put(MailConstants.MAIL_REPLY_TO, "route-test-reply@localhost");
         template.sendBodyAndHeaders("smtp://route-test-james@localhost", 
"hello world!", headers);
 
         // lets test the first sent worked
@@ -60,7 +60,7 @@ public class MailRouteTest extends CamelTestSupport {
 
         // Validate that the headers were preserved.
         Exchange exchange = resultEndpoint.getReceivedExchanges().get(0);
-        String replyTo = (String) exchange.getIn().getHeader("reply-to");
+        String replyTo = (String) 
exchange.getIn().getHeader(MailConstants.MAIL_REPLY_TO);
         assertEquals("route-test-reply@localhost", replyTo);
 
         assertMailboxReceivedMessages("route-test-copy@localhost");
diff --git 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
index 5d3b4ff..6c50da6 100644
--- 
a/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
+++ 
b/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java
@@ -24,6 +24,7 @@ import javax.net.ssl.SSLHandshakeException;
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mail.MailConstants;
 import org.apache.camel.component.mail.MailTestHelper;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.jsse.SSLContextParameters;
@@ -71,7 +72,7 @@ public class SslContextParametersMailRouteTest extends 
CamelTestSupport {
         Map<String, Object> headers = new HashMap<>();
         headers.put("To", email);
         headers.put("From", email);
-        headers.put("Reply-to", email);
+        headers.put(MailConstants.MAIL_REPLY_TO, email);
         headers.put("Subject", "SSL/TLS Test");
 
         template.sendBodyAndHeaders("direct:in", "Test Email Body", headers);
@@ -95,7 +96,7 @@ public class SslContextParametersMailRouteTest extends 
CamelTestSupport {
         Map<String, Object> headers = new HashMap<>();
         headers.put("To", email);
         headers.put("From", email);
-        headers.put("Reply-to", email);
+        headers.put(MailConstants.MAIL_REPLY_TO, email);
         headers.put("Subject", "SSL/TLS Test");
 
         try {

Reply via email to