You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/12/17 19:38:53 UTC

[camel] branch master updated: CAMEL-13024: camel-mail - Add option to configure whether to encode attachment file name or not. Thanks to Stephan Siano for unit test.

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 75edd58  CAMEL-13024: camel-mail - Add option to configure whether to encode attachment file name or not. Thanks to Stephan Siano for unit test.
75edd58 is described below

commit 75edd58d225883fb5e50b700b8108512103851d9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Dec 17 20:38:06 2020 +0100

    CAMEL-13024: camel-mail - Add option to configure whether to encode attachment file name or not. Thanks to Stephan Siano for unit test.
---
 .../apache/camel/catalog/docs/mail-component.adoc  |  6 +-
 .../component/mail/MailComponentConfigurer.java    |  6 ++
 .../component/mail/MailEndpointConfigurer.java     |  6 ++
 .../component/mail/MailEndpointUriFactory.java     |  3 +-
 .../org/apache/camel/component/mail/imap.json      |  2 +
 .../org/apache/camel/component/mail/imaps.json     |  2 +
 .../org/apache/camel/component/mail/pop3.json      |  2 +
 .../org/apache/camel/component/mail/pop3s.json     |  2 +
 .../org/apache/camel/component/mail/smtp.json      |  2 +
 .../org/apache/camel/component/mail/smtps.json     |  2 +
 .../camel-mail/src/main/docs/mail-component.adoc   |  6 +-
 .../apache/camel/component/mail/MailBinding.java   | 13 ++++-
 .../camel/component/mail/MailConfiguration.java    | 14 +++++
 .../apache/camel/component/mail/MailEndpoint.java  |  3 +-
 .../MailBindingAttachmentEncodedFilenameTest.java  | 68 ++++++++++++++++++++++
 .../component/dsl/ImapComponentBuilderFactory.java | 18 ++++++
 .../dsl/ImapsComponentBuilderFactory.java          | 18 ++++++
 .../component/dsl/Pop3ComponentBuilderFactory.java | 18 ++++++
 .../dsl/Pop3sComponentBuilderFactory.java          | 18 ++++++
 .../component/dsl/SmtpComponentBuilderFactory.java | 18 ++++++
 .../dsl/SmtpsComponentBuilderFactory.java          | 18 ++++++
 .../endpoint/dsl/MailEndpointBuilderFactory.java   | 36 ++++++++++++
 .../modules/ROOT/pages/mail-component.adoc         |  6 +-
 23 files changed, 277 insertions(+), 10 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mail-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mail-component.adoc
index 4602ed4..c6252c7 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mail-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mail-component.adoc
@@ -98,7 +98,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Mail component supports 42 options, which are listed below.
+The Mail component supports 43 options, which are listed below.
 
 
 
@@ -108,6 +108,7 @@ The Mail component supports 42 options, which are listed below.
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *closeFolder* (consumer) | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | boolean
 | *copyTo* (consumer) | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. |  | String
+| *decodeFilename* (consumer) | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | boolean
 | *delete* (consumer) | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | boolean
 | *disconnect* (consumer) | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | boolean
 | *handleFailedMessage* (consumer) | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | boolean
@@ -175,7 +176,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (66 parameters):
+=== Query Parameters (67 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -184,6 +185,7 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *closeFolder* (consumer) | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | boolean
 | *copyTo* (consumer) | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. |  | String
+| *decodeFilename* (consumer) | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | boolean
 | *delete* (consumer) | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | boolean
 | *disconnect* (consumer) | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | boolean
 | *handleFailedMessage* (consumer) | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | boolean
diff --git a/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailComponentConfigurer.java b/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailComponentConfigurer.java
index 617c631..fdbef11 100644
--- a/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailComponentConfigurer.java
+++ b/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailComponentConfigurer.java
@@ -54,6 +54,8 @@ public class MailComponentConfigurer extends PropertyConfigurerSupport implement
         case "copyTo": getOrCreateConfiguration(target).setCopyTo(property(camelContext, java.lang.String.class, value)); return true;
         case "debugmode":
         case "debugMode": getOrCreateConfiguration(target).setDebugMode(property(camelContext, boolean.class, value)); return true;
+        case "decodefilename":
+        case "decodeFilename": getOrCreateConfiguration(target).setDecodeFilename(property(camelContext, boolean.class, value)); return true;
         case "delete": getOrCreateConfiguration(target).setDelete(property(camelContext, boolean.class, value)); return true;
         case "disconnect": getOrCreateConfiguration(target).setDisconnect(property(camelContext, boolean.class, value)); return true;
         case "fetchsize":
@@ -131,6 +133,8 @@ public class MailComponentConfigurer extends PropertyConfigurerSupport implement
         case "copyTo": return java.lang.String.class;
         case "debugmode":
         case "debugMode": return boolean.class;
+        case "decodefilename":
+        case "decodeFilename": return boolean.class;
         case "delete": return boolean.class;
         case "disconnect": return boolean.class;
         case "fetchsize":
@@ -209,6 +213,8 @@ public class MailComponentConfigurer extends PropertyConfigurerSupport implement
         case "copyTo": return getOrCreateConfiguration(target).getCopyTo();
         case "debugmode":
         case "debugMode": return getOrCreateConfiguration(target).isDebugMode();
+        case "decodefilename":
+        case "decodeFilename": return getOrCreateConfiguration(target).isDecodeFilename();
         case "delete": return getOrCreateConfiguration(target).isDelete();
         case "disconnect": return getOrCreateConfiguration(target).isDisconnect();
         case "fetchsize":
diff --git a/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointConfigurer.java b/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointConfigurer.java
index c1c90e8..312633c 100644
--- a/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointConfigurer.java
+++ b/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointConfigurer.java
@@ -51,6 +51,8 @@ public class MailEndpointConfigurer extends PropertyConfigurerSupport implements
         case "copyTo": target.getConfiguration().setCopyTo(property(camelContext, java.lang.String.class, value)); return true;
         case "debugmode":
         case "debugMode": target.getConfiguration().setDebugMode(property(camelContext, boolean.class, value)); return true;
+        case "decodefilename":
+        case "decodeFilename": target.getConfiguration().setDecodeFilename(property(camelContext, boolean.class, value)); return true;
         case "delay": target.setDelay(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
         case "delete": target.getConfiguration().setDelete(property(camelContext, boolean.class, value)); return true;
         case "disconnect": target.getConfiguration().setDisconnect(property(camelContext, boolean.class, value)); return true;
@@ -172,6 +174,8 @@ public class MailEndpointConfigurer extends PropertyConfigurerSupport implements
         case "copyTo": return java.lang.String.class;
         case "debugmode":
         case "debugMode": return boolean.class;
+        case "decodefilename":
+        case "decodeFilename": return boolean.class;
         case "delay": return long.class;
         case "delete": return boolean.class;
         case "disconnect": return boolean.class;
@@ -294,6 +298,8 @@ public class MailEndpointConfigurer extends PropertyConfigurerSupport implements
         case "copyTo": return target.getConfiguration().getCopyTo();
         case "debugmode":
         case "debugMode": return target.getConfiguration().isDebugMode();
+        case "decodefilename":
+        case "decodeFilename": return target.getConfiguration().isDecodeFilename();
         case "delay": return target.getDelay();
         case "delete": return target.getConfiguration().isDelete();
         case "disconnect": return target.getConfiguration().isDisconnect();
diff --git a/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointUriFactory.java b/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointUriFactory.java
index 371e7d45..9cb71c8 100644
--- a/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointUriFactory.java
+++ b/components/camel-mail/src/generated/java/org/apache/camel/component/mail/MailEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class MailEndpointUriFactory extends org.apache.camel.support.component.E
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(68);
+        Set<String> props = new HashSet<>(69);
         props.add("disconnect");
         props.add("contentTypeResolver");
         props.add("subject");
@@ -85,6 +85,7 @@ public class MailEndpointUriFactory extends org.apache.camel.support.component.E
         props.add("ignoreUriScheme");
         props.add("peek");
         props.add("pollStrategy");
+        props.add("decodeFilename");
         props.add("to");
         props.add("javaMailProperties");
         props.add("unseen");
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 a5ef97a..c5490ad 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
@@ -27,6 +27,7 @@
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
     "closeFolder": { "kind": "property", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to f [...]
     "copyTo": { "kind": "property", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override thi [...]
+    "decodeFilename": { "kind": "property", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simil [...]
     "delete": { "kind": "property", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag  [...]
     "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to  [...]
     "handleFailedMessage": { "kind": "property", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then th [...]
@@ -73,6 +74,7 @@
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
     "closeFolder": { "kind": "parameter", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to  [...]
     "copyTo": { "kind": "parameter", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override th [...]
+    "decodeFilename": { "kind": "parameter", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simi [...]
     "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to [...]
     "handleFailedMessage": { "kind": "parameter", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then t [...]
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 14f4ba6..295a7ed 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
@@ -27,6 +27,7 @@
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
     "closeFolder": { "kind": "property", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to f [...]
     "copyTo": { "kind": "property", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override thi [...]
+    "decodeFilename": { "kind": "property", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simil [...]
     "delete": { "kind": "property", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag  [...]
     "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to  [...]
     "handleFailedMessage": { "kind": "property", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then th [...]
@@ -73,6 +74,7 @@
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
     "closeFolder": { "kind": "parameter", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to  [...]
     "copyTo": { "kind": "parameter", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override th [...]
+    "decodeFilename": { "kind": "parameter", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simi [...]
     "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to [...]
     "handleFailedMessage": { "kind": "parameter", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then t [...]
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 ab308db..daef758 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
@@ -27,6 +27,7 @@
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
     "closeFolder": { "kind": "property", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to f [...]
     "copyTo": { "kind": "property", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override thi [...]
+    "decodeFilename": { "kind": "property", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simil [...]
     "delete": { "kind": "property", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag  [...]
     "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to  [...]
     "handleFailedMessage": { "kind": "property", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then th [...]
@@ -73,6 +74,7 @@
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
     "closeFolder": { "kind": "parameter", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to  [...]
     "copyTo": { "kind": "parameter", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override th [...]
+    "decodeFilename": { "kind": "parameter", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simi [...]
     "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to [...]
     "handleFailedMessage": { "kind": "parameter", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then t [...]
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 2ae6808..62664a0 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
@@ -27,6 +27,7 @@
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
     "closeFolder": { "kind": "property", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to f [...]
     "copyTo": { "kind": "property", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override thi [...]
+    "decodeFilename": { "kind": "property", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simil [...]
     "delete": { "kind": "property", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag  [...]
     "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to  [...]
     "handleFailedMessage": { "kind": "property", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then th [...]
@@ -73,6 +74,7 @@
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
     "closeFolder": { "kind": "parameter", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to  [...]
     "copyTo": { "kind": "parameter", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override th [...]
+    "decodeFilename": { "kind": "parameter", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simi [...]
     "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to [...]
     "handleFailedMessage": { "kind": "parameter", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then t [...]
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 c11e314..4c444d1 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
@@ -27,6 +27,7 @@
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
     "closeFolder": { "kind": "property", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to f [...]
     "copyTo": { "kind": "property", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override thi [...]
+    "decodeFilename": { "kind": "property", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simil [...]
     "delete": { "kind": "property", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag  [...]
     "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to  [...]
     "handleFailedMessage": { "kind": "property", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then th [...]
@@ -73,6 +74,7 @@
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
     "closeFolder": { "kind": "parameter", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to  [...]
     "copyTo": { "kind": "parameter", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override th [...]
+    "decodeFilename": { "kind": "parameter", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simi [...]
     "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to [...]
     "handleFailedMessage": { "kind": "parameter", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then t [...]
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 b612916..463f223 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
@@ -27,6 +27,7 @@
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...]
     "closeFolder": { "kind": "property", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to f [...]
     "copyTo": { "kind": "property", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override thi [...]
+    "decodeFilename": { "kind": "property", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simil [...]
     "delete": { "kind": "property", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag  [...]
     "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to  [...]
     "handleFailedMessage": { "kind": "property", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then th [...]
@@ -73,6 +74,7 @@
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
     "closeFolder": { "kind": "parameter", "displayName": "Close Folder", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should close the folder after polling. Setting this option to  [...]
     "copyTo": { "kind": "parameter", "displayName": "Copy To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override th [...]
+    "decodeFilename": { "kind": "parameter", "displayName": "Decode Filename", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is simi [...]
     "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag [...]
     "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to [...]
     "handleFailedMessage": { "kind": "parameter", "displayName": "Handle Failed Message", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "If the mail consumer cannot retrieve a given mail message, then t [...]
diff --git a/components/camel-mail/src/main/docs/mail-component.adoc b/components/camel-mail/src/main/docs/mail-component.adoc
index 4602ed4..c6252c7 100644
--- a/components/camel-mail/src/main/docs/mail-component.adoc
+++ b/components/camel-mail/src/main/docs/mail-component.adoc
@@ -98,7 +98,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Mail component supports 42 options, which are listed below.
+The Mail component supports 43 options, which are listed below.
 
 
 
@@ -108,6 +108,7 @@ The Mail component supports 42 options, which are listed below.
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *closeFolder* (consumer) | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | boolean
 | *copyTo* (consumer) | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. |  | String
+| *decodeFilename* (consumer) | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | boolean
 | *delete* (consumer) | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | boolean
 | *disconnect* (consumer) | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | boolean
 | *handleFailedMessage* (consumer) | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | boolean
@@ -175,7 +176,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (66 parameters):
+=== Query Parameters (67 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -184,6 +185,7 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *closeFolder* (consumer) | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | boolean
 | *copyTo* (consumer) | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. |  | String
+| *decodeFilename* (consumer) | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | boolean
 | *delete* (consumer) | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | boolean
 | *disconnect* (consumer) | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | boolean
 | *handleFailedMessage* (consumer) | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | boolean
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 d93501d..e6a46be 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
@@ -70,14 +70,17 @@ public class MailBinding {
     private static final Logger LOG = LoggerFactory.getLogger(MailBinding.class);
     private HeaderFilterStrategy headerFilterStrategy;
     private ContentTypeResolver contentTypeResolver;
+    private boolean decodeFilename;
 
     public MailBinding() {
         headerFilterStrategy = new DefaultHeaderFilterStrategy();
     }
 
-    public MailBinding(HeaderFilterStrategy headerFilterStrategy, ContentTypeResolver contentTypeResolver) {
+    public MailBinding(HeaderFilterStrategy headerFilterStrategy, ContentTypeResolver contentTypeResolver,
+                       boolean decodeFilename) {
         this.headerFilterStrategy = headerFilterStrategy;
         this.contentTypeResolver = contentTypeResolver;
+        this.decodeFilename = decodeFilename;
     }
 
     public void populateMailMessage(MailEndpoint endpoint, MimeMessage mimeMessage, Exchange exchange)
@@ -322,7 +325,13 @@ public class MailBinding {
                 extractAttachmentsFromMultipart((Multipart) part.getContent(), map);
             } else {
                 String disposition = part.getDisposition();
-                String fileName = FileUtil.stripPath(part.getFileName());
+                String fileName = part.getFileName();
+                if (fileName != null && decodeFilename) {
+                    fileName = MimeUtility.decodeText(fileName);
+                }
+                if (fileName != null) {
+                    fileName = FileUtil.stripPath(fileName);
+                }
 
                 if (LOG.isTraceEnabled()) {
                     LOG.trace("Part #{}: Disposition: {}", i, disposition);
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
index cf7a98c..0ed8de6 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
@@ -126,6 +126,8 @@ public class MailConfiguration implements Cloneable {
     @UriParam(defaultValue = "false")
     @Metadata(label = "consumer")
     private boolean mimeDecodeHeaders;
+    @UriParam(label = "consumer")
+    private boolean decodeFilename;
     @UriParam(label = "security")
     private SSLContextParameters sslContextParameters;
     @UriParam(label = "advanced", prefix = "mail.", multiValue = true)
@@ -814,4 +816,16 @@ public class MailConfiguration implements Cloneable {
     public boolean isMimeDecodeHeaders() {
         return mimeDecodeHeaders;
     }
+
+    public boolean isDecodeFilename() {
+        return decodeFilename;
+    }
+
+    /**
+     * If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting
+     * JVM system property mail.mime.encodefilename.
+     */
+    public void setDecodeFilename(boolean decodeFilename) {
+        this.decodeFilename = decodeFilename;
+    }
 }
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 5683127..c7723cd 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
@@ -138,7 +138,8 @@ public class MailEndpoint extends ScheduledPollEndpoint implements HeaderFilterS
 
     public MailBinding getBinding() {
         if (binding == null) {
-            binding = new MailBinding(headerFilterStrategy, contentTypeResolver);
+            boolean decode = getConfiguration() != null && getConfiguration().isDecodeFilename();
+            binding = new MailBinding(headerFilterStrategy, contentTypeResolver, decode);
         }
         return binding;
     }
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java
new file mode 100644
index 0000000..3ebd6b6
--- /dev/null
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailBindingAttachmentEncodedFilenameTest.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+import javax.mail.Message;
+import javax.mail.Multipart;
+import javax.mail.Part;
+import javax.mail.Session;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
+
+import org.apache.camel.attachment.Attachment;
+import org.apache.camel.support.DefaultHeaderFilterStrategy;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class MailBindingAttachmentEncodedFilenameTest {
+
+    // enable file decoding
+    private final MailBinding binding = new MailBinding(new DefaultHeaderFilterStrategy(), null, true);
+
+    @Test
+    public void shouldNotBreakEncodedFileNamesWithSlashes() throws Exception {
+        final Session session = Session.getInstance(new Properties());
+        final Message message = new MimeMessage(session);
+        final String encodedFilename = "=?UTF-8?B?6Kq/5pW0?=";
+        final String plainFilename = MimeUtility.decodeText(encodedFilename);
+
+        final Multipart multipart = new MimeMultipart();
+        final MimeBodyPart part = new MimeBodyPart();
+        part.attachFile(plainFilename);
+        part.setFileName(encodedFilename);
+        part.setDisposition(Part.ATTACHMENT);
+        multipart.addBodyPart(part);
+        message.setContent(multipart);
+
+        final Map<String, Attachment> attachments = new HashMap<>();
+        binding.extractAttachmentsFromMail(message, attachments);
+
+        assertTrue(attachments.containsKey(plainFilename));
+        final Attachment attachment = attachments.get(plainFilename);
+        final DataHandler dataHandler = attachment.getDataHandler();
+        assertEquals(plainFilename, dataHandler.getName());
+    }
+}
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapComponentBuilderFactory.java
index f04d816..bbc17a0 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapComponentBuilderFactory.java
@@ -105,6 +105,23 @@ public interface ImapComponentBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default ImapComponentBuilder decodeFilename(boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
@@ -796,6 +813,7 @@ public interface ImapComponentBuilderFactory {
             case "bridgeErrorHandler": ((MailComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "closeFolder": getOrCreateConfiguration((MailComponent) component).setCloseFolder((boolean) value); return true;
             case "copyTo": getOrCreateConfiguration((MailComponent) component).setCopyTo((java.lang.String) value); return true;
+            case "decodeFilename": getOrCreateConfiguration((MailComponent) component).setDecodeFilename((boolean) value); return true;
             case "delete": getOrCreateConfiguration((MailComponent) component).setDelete((boolean) value); return true;
             case "disconnect": getOrCreateConfiguration((MailComponent) component).setDisconnect((boolean) value); return true;
             case "handleFailedMessage": getOrCreateConfiguration((MailComponent) component).setHandleFailedMessage((boolean) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapsComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapsComponentBuilderFactory.java
index a82583a..76ba759 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapsComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ImapsComponentBuilderFactory.java
@@ -105,6 +105,23 @@ public interface ImapsComponentBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default ImapsComponentBuilder decodeFilename(boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
@@ -799,6 +816,7 @@ public interface ImapsComponentBuilderFactory {
             case "bridgeErrorHandler": ((MailComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "closeFolder": getOrCreateConfiguration((MailComponent) component).setCloseFolder((boolean) value); return true;
             case "copyTo": getOrCreateConfiguration((MailComponent) component).setCopyTo((java.lang.String) value); return true;
+            case "decodeFilename": getOrCreateConfiguration((MailComponent) component).setDecodeFilename((boolean) value); return true;
             case "delete": getOrCreateConfiguration((MailComponent) component).setDelete((boolean) value); return true;
             case "disconnect": getOrCreateConfiguration((MailComponent) component).setDisconnect((boolean) value); return true;
             case "handleFailedMessage": getOrCreateConfiguration((MailComponent) component).setHandleFailedMessage((boolean) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3ComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3ComponentBuilderFactory.java
index 9205cd2..b708b31 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3ComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3ComponentBuilderFactory.java
@@ -105,6 +105,23 @@ public interface Pop3ComponentBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default Pop3ComponentBuilder decodeFilename(boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
@@ -796,6 +813,7 @@ public interface Pop3ComponentBuilderFactory {
             case "bridgeErrorHandler": ((MailComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "closeFolder": getOrCreateConfiguration((MailComponent) component).setCloseFolder((boolean) value); return true;
             case "copyTo": getOrCreateConfiguration((MailComponent) component).setCopyTo((java.lang.String) value); return true;
+            case "decodeFilename": getOrCreateConfiguration((MailComponent) component).setDecodeFilename((boolean) value); return true;
             case "delete": getOrCreateConfiguration((MailComponent) component).setDelete((boolean) value); return true;
             case "disconnect": getOrCreateConfiguration((MailComponent) component).setDisconnect((boolean) value); return true;
             case "handleFailedMessage": getOrCreateConfiguration((MailComponent) component).setHandleFailedMessage((boolean) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3sComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3sComponentBuilderFactory.java
index 4adf089..4c17193 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3sComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Pop3sComponentBuilderFactory.java
@@ -105,6 +105,23 @@ public interface Pop3sComponentBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default Pop3sComponentBuilder decodeFilename(boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
@@ -799,6 +816,7 @@ public interface Pop3sComponentBuilderFactory {
             case "bridgeErrorHandler": ((MailComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "closeFolder": getOrCreateConfiguration((MailComponent) component).setCloseFolder((boolean) value); return true;
             case "copyTo": getOrCreateConfiguration((MailComponent) component).setCopyTo((java.lang.String) value); return true;
+            case "decodeFilename": getOrCreateConfiguration((MailComponent) component).setDecodeFilename((boolean) value); return true;
             case "delete": getOrCreateConfiguration((MailComponent) component).setDelete((boolean) value); return true;
             case "disconnect": getOrCreateConfiguration((MailComponent) component).setDisconnect((boolean) value); return true;
             case "handleFailedMessage": getOrCreateConfiguration((MailComponent) component).setHandleFailedMessage((boolean) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpComponentBuilderFactory.java
index c7a1f19..b9dc6aa 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpComponentBuilderFactory.java
@@ -105,6 +105,23 @@ public interface SmtpComponentBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default SmtpComponentBuilder decodeFilename(boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
@@ -796,6 +813,7 @@ public interface SmtpComponentBuilderFactory {
             case "bridgeErrorHandler": ((MailComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "closeFolder": getOrCreateConfiguration((MailComponent) component).setCloseFolder((boolean) value); return true;
             case "copyTo": getOrCreateConfiguration((MailComponent) component).setCopyTo((java.lang.String) value); return true;
+            case "decodeFilename": getOrCreateConfiguration((MailComponent) component).setDecodeFilename((boolean) value); return true;
             case "delete": getOrCreateConfiguration((MailComponent) component).setDelete((boolean) value); return true;
             case "disconnect": getOrCreateConfiguration((MailComponent) component).setDisconnect((boolean) value); return true;
             case "handleFailedMessage": getOrCreateConfiguration((MailComponent) component).setHandleFailedMessage((boolean) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpsComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpsComponentBuilderFactory.java
index 20530dc..4f012e8 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpsComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SmtpsComponentBuilderFactory.java
@@ -105,6 +105,23 @@ public interface SmtpsComponentBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default SmtpsComponentBuilder decodeFilename(boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
@@ -799,6 +816,7 @@ public interface SmtpsComponentBuilderFactory {
             case "bridgeErrorHandler": ((MailComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "closeFolder": getOrCreateConfiguration((MailComponent) component).setCloseFolder((boolean) value); return true;
             case "copyTo": getOrCreateConfiguration((MailComponent) component).setCopyTo((java.lang.String) value); return true;
+            case "decodeFilename": getOrCreateConfiguration((MailComponent) component).setDecodeFilename((boolean) value); return true;
             case "delete": getOrCreateConfiguration((MailComponent) component).setDelete((boolean) value); return true;
             case "disconnect": getOrCreateConfiguration((MailComponent) component).setDisconnect((boolean) value); return true;
             case "handleFailedMessage": getOrCreateConfiguration((MailComponent) component).setHandleFailedMessage((boolean) value); return true;
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java
index c9cc74f..9b93b95 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java
@@ -147,6 +147,42 @@ public interface MailEndpointBuilderFactory {
             return this;
         }
         /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default MailEndpointConsumerBuilder decodeFilename(
+                boolean decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
+         * If set to true, the MimeUtility.decodeText method will be used to
+         * decode the filename. This is similar to setting JVM system property
+         * mail.mime.encodefilename.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param decodeFilename the value to set
+         * @return the dsl builder
+         */
+        default MailEndpointConsumerBuilder decodeFilename(String decodeFilename) {
+            doSetProperty("decodeFilename", decodeFilename);
+            return this;
+        }
+        /**
          * Deletes the messages after they have been processed. This is done by
          * setting the DELETED flag on the mail message. If false, the SEEN flag
          * is set instead. As of Camel 2.10 you can override this configuration
diff --git a/docs/components/modules/ROOT/pages/mail-component.adoc b/docs/components/modules/ROOT/pages/mail-component.adoc
index 736bf53..612f107 100644
--- a/docs/components/modules/ROOT/pages/mail-component.adoc
+++ b/docs/components/modules/ROOT/pages/mail-component.adoc
@@ -100,7 +100,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Mail component supports 42 options, which are listed below.
+The Mail component supports 43 options, which are listed below.
 
 
 
@@ -110,6 +110,7 @@ The Mail component supports 42 options, which are listed below.
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *closeFolder* (consumer) | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | boolean
 | *copyTo* (consumer) | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. |  | String
+| *decodeFilename* (consumer) | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | boolean
 | *delete* (consumer) | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | boolean
 | *disconnect* (consumer) | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | boolean
 | *handleFailedMessage* (consumer) | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | boolean
@@ -177,7 +178,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (66 parameters):
+=== Query Parameters (67 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -186,6 +187,7 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *closeFolder* (consumer) | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | boolean
 | *copyTo* (consumer) | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. |  | String
+| *decodeFilename* (consumer) | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | boolean
 | *delete* (consumer) | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | boolean
 | *disconnect* (consumer) | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | boolean
 | *handleFailedMessage* (consumer) | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | boolean