/**
* 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.springboot;
import java.util.Properties;
import javax.annotation.Generated;
import javax.mail.Session;
import org.apache.camel.component.mail.AttachmentsContentTransferEncodingResolver;
import org.apache.camel.component.mail.ContentTypeResolver;
import org.apache.camel.component.mail.JavaMailSender;
import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.apache.camel.util.jsse.SSLContextParameters;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
/**
* To send or receive emails using imap/pop3 or smtp protocols.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.mail")
public class MailComponentConfiguration
extends
ComponentConfigurationPropertiesCommon {
/**
* Sets the Mail configuration
*/
private MailConfigurationNestedConfiguration configuration;
/**
* Resolver to determine Content-Type for file attachments.
*/
@NestedConfigurationProperty
private ContentTypeResolver contentTypeResolver;
/**
* Enable usage of global SSL context parameters.
*/
private Boolean useGlobalSslContextParameters = false;
/**
* Whether the component should resolve property placeholders on itself when
* starting. Only properties which are of String type can use property
* placeholders.
*/
private Boolean resolvePropertyPlaceholders = true;
public MailConfigurationNestedConfiguration getConfiguration() {
return configuration;
}
public void setConfiguration(
MailConfigurationNestedConfiguration configuration) {
this.configuration = configuration;
}
public ContentTypeResolver getContentTypeResolver() {
return contentTypeResolver;
}
public void setContentTypeResolver(ContentTypeResolver contentTypeResolver) {
this.contentTypeResolver = contentTypeResolver;
}
public Boolean getUseGlobalSslContextParameters() {
return useGlobalSslContextParameters;
}
public void setUseGlobalSslContextParameters(
Boolean useGlobalSslContextParameters) {
this.useGlobalSslContextParameters = useGlobalSslContextParameters;
}
public Boolean getResolvePropertyPlaceholders() {
return resolvePropertyPlaceholders;
}
public void setResolvePropertyPlaceholders(
Boolean resolvePropertyPlaceholders) {
this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
}
public static class MailConfigurationNestedConfiguration {
public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.mail.MailConfiguration.class;
/**
* To use a custom
* {@link org.apache.camel.component.mail.JavaMailSender} for sending
* emails.
*/
private JavaMailSender javaMailSender;
/**
* The mail server host name
*/
private String host;
/**
* Sets the java mail options. Will clear any default properties and
* only use the properties provided for this method.
*/
private Properties javaMailProperties;
/**
* Sets additional java mail properties, that will append/override any
* default properties that is set based on all the other options. This
* is useful if you need to add some special options but want to keep
* the others as is.
*/
private Properties additionalJavaMailProperties;
/**
* The password for login
*/
private String password;
/**
* The Subject of the message being sent. Note: Setting the subject in
* the header takes precedence over this option.
*/
private String subject;
/**
* The port number of the mail server
*/
private Integer port;
/**
* The protocol for communicating with the mail server
*/
private String protocol;
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
* managed by some other resource, such as a JavaEE container. If this
* is not specified, Camel automatically creates the mail session for
* you.
*/
private Session session;
/**
* The username for login
*/
private String username;
/**
* The from email address
*/
private String from = "camel@localhost";
/**
* 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.
*/
private Boolean delete = false;
/**
* Specifies whether Camel should map the received mail message to Camel
* body/headers. If set to true, the body of the mail message is mapped
* to the body of the Camel IN message and the mail headers are mapped
* to IN headers. If this option is set to false then the IN message
* contains a raw javax.mail.Message. You can retrieve this raw message
* by calling exchange.getIn().getBody(javax.mail.Message.class).
*/
private Boolean mapMailMessage = true;
/**
* The folder to poll.
*/
private String folderName = "INBOX";
/**
* Option to let Camel ignore unsupported charset in the local JVM when
* sending mails. If the charset is unsupported then charset=XXX (where
* XXX represents the unsupported charset) is removed from the
* content-type and it relies on the platform default instead.
*/
private Boolean ignoreUriScheme = false;
/**
* Whether to limit by unseen mails only.
*/
private Boolean unseen = true;
/**
* Sets the To email address. Separate multiple email addresses with
* comma.
*/
private String to;
/**
* Sets the CC email address. Separate multiple email addresses with
* comma.
*/
private String cc;
/**
* Sets the BCC email address. Separate multiple email addresses with
* comma.
*/
private String bcc;
/**
* The Reply-To recipients (the receivers of the response mail).
* Separate multiple email addresses with a comma.
*/
private String replyTo;
/**
* Sets the maximum number of messages to consume during a poll. This
* can be used to avoid overloading a mail server, if a mailbox folder
* contains a lot of messages. Default value of -1 means no fetch size
* and all messages will be consumed. Setting the value to 0 is a
* special corner case, where Camel will not consume any messages at
* all.
*/
private Integer fetchSize = -1;
/**
* Enable debug mode on the underlying mail framework. The SUN Mail
* framework logs the debug messages to System.out by default.
*/
private Boolean debugMode = false;
/**
* The connection timeout in milliseconds.
*/
private Integer connectionTimeout = 30000;
/**
* To use a dummy security setting for trusting all certificates. Should
* only be used for development mode, and not production.
*/
private Boolean dummyTrustManager = false;
/**
* The mail message content type. Use text/html for HTML mails.
*/
private String contentType = "text/plain";
/**
* Specifies the key to an IN message header that contains an
* alternative email body. For example, if you send emails in text/html
* format and want to provide an alternative mail body for non-HTML
* email clients, set the alternative mail body with this key as a
* header.
*/
private String alternativeBodyHeader = "CamelMailAlternativeBody";
/**
* Whether to use disposition inline or attachment.
*/
private Boolean useInlineAttachments = false;
/**
* Option to let Camel ignore unsupported charset in the local JVM when
* sending mails. If the charset is unsupported then charset=XXX (where
* XXX represents the unsupported charset) is removed from the
* content-type and it relies on the platform default instead.
*/
private Boolean ignoreUnsupportedCharset = false;
/**
* Whether the consumer should disconnect after polling. If enabled this
* forces Camel to connect on each poll.
*/
private Boolean disconnect = false;
/**
* 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.
*/
private Boolean closeFolder = true;
/**
* To configure security using SSLContextParameters.
*/
@NestedConfigurationProperty
private SSLContextParameters sslContextParameters;
/**
* 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.
*/
private String copyTo;
/**
* Will mark the javax.mail.Message as peeked before processing the mail
* message. This applies to IMAPMessage messages types only. By using
* peek the mail will not be eager marked as SEEN on the mail server,
* which allows us to rollback the mail message if there is an error
* processing in Camel.
*/
private Boolean peek = true;
/**
* If the mail consumer cannot retrieve a given mail message, then this
* option allows to skip the message and move on to retrieve the next
* mail message.
* <p/>
* The default behavior would be the consumer throws an exception and no
* mails from the batch would be able to be routed by Camel.
*/
private Boolean skipFailedMessage = false;
/**
* 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.
* <p/>
* The default behavior would be the consumer throws an exception and no
* mails from the batch would be able to be routed by Camel.
*/
private Boolean handleFailedMessage = false;
/**
* To use a custom AttachmentsContentTransferEncodingResolver to resolve
* what content-type-encoding to use for attachments.
*/
private AttachmentsContentTransferEncodingResolver attachmentsContentTransferEncodingResolver;
public JavaMailSender getJavaMailSender() {
return javaMailSender;
}
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public Properties getJavaMailProperties() {
return javaMailProperties;
}
public void setJavaMailProperties(Properties javaMailProperties) {
this.javaMailProperties = javaMailProperties;
}
public Properties getAdditionalJavaMailProperties() {
return additionalJavaMailProperties;
}
public void setAdditionalJavaMailProperties(
Properties additionalJavaMailProperties) {
this.additionalJavaMailProperties = additionalJavaMailProperties;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public Session getSession() {
return session;
}
public void setSession(Session session) {
this.session = session;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public Boolean getDelete() {
return delete;
}
public void setDelete(Boolean delete) {
this.delete = delete;
}
public Boolean getMapMailMessage() {
return mapMailMessage;
}
public void setMapMailMessage(Boolean mapMailMessage) {
this.mapMailMessage = mapMailMessage;
}
public String getFolderName() {
return folderName;
}
public void setFolderName(String folderName) {
this.folderName = folderName;
}
public Boolean getIgnoreUriScheme() {
return ignoreUriScheme;
}
public void setIgnoreUriScheme(Boolean ignoreUriScheme) {
this.ignoreUriScheme = ignoreUriScheme;
}
public Boolean getUnseen() {
return unseen;
}
public void setUnseen(Boolean unseen) {
this.unseen = unseen;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
public String getBcc() {
return bcc;
}
public void setBcc(String bcc) {
this.bcc = bcc;
}
public String getReplyTo() {
return replyTo;
}
public void setReplyTo(String replyTo) {
this.replyTo = replyTo;
}
public Integer getFetchSize() {
return fetchSize;
}
public void setFetchSize(Integer fetchSize) {
this.fetchSize = fetchSize;
}
public Boolean getDebugMode() {
return debugMode;
}
public void setDebugMode(Boolean debugMode) {
this.debugMode = debugMode;
}
public Integer getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(Integer connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public Boolean getDummyTrustManager() {
return dummyTrustManager;
}
public void setDummyTrustManager(Boolean dummyTrustManager) {
this.dummyTrustManager = dummyTrustManager;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getAlternativeBodyHeader() {
return alternativeBodyHeader;
}
public void setAlternativeBodyHeader(String alternativeBodyHeader) {
this.alternativeBodyHeader = alternativeBodyHeader;
}
public Boolean getUseInlineAttachments() {
return useInlineAttachments;
}
public void setUseInlineAttachments(Boolean useInlineAttachments) {
this.useInlineAttachments = useInlineAttachments;
}
public Boolean getIgnoreUnsupportedCharset() {
return ignoreUnsupportedCharset;
}
public void setIgnoreUnsupportedCharset(Boolean ignoreUnsupportedCharset) {
this.ignoreUnsupportedCharset = ignoreUnsupportedCharset;
}
public Boolean getDisconnect() {
return disconnect;
}
public void setDisconnect(Boolean disconnect) {
this.disconnect = disconnect;
}
public Boolean getCloseFolder() {
return closeFolder;
}
public void setCloseFolder(Boolean closeFolder) {
this.closeFolder = closeFolder;
}
public SSLContextParameters getSslContextParameters() {
return sslContextParameters;
}
public void setSslContextParameters(
SSLContextParameters sslContextParameters) {
this.sslContextParameters = sslContextParameters;
}
public String getCopyTo() {
return copyTo;
}
public void setCopyTo(String copyTo) {
this.copyTo = copyTo;
}
public Boolean getPeek() {
return peek;
}
public void setPeek(Boolean peek) {
this.peek = peek;
}
public Boolean getSkipFailedMessage() {
return skipFailedMessage;
}
public void setSkipFailedMessage(Boolean skipFailedMessage) {
this.skipFailedMessage = skipFailedMessage;
}
public Boolean getHandleFailedMessage() {
return handleFailedMessage;
}
public void setHandleFailedMessage(Boolean handleFailedMessage) {
this.handleFailedMessage = handleFailedMessage;
}
public AttachmentsContentTransferEncodingResolver getAttachmentsContentTransferEncodingResolver() {
return attachmentsContentTransferEncodingResolver;
}
public void setAttachmentsContentTransferEncodingResolver(
AttachmentsContentTransferEncodingResolver attachmentsContentTransferEncodingResolver) {
this.attachmentsContentTransferEncodingResolver = attachmentsContentTransferEncodingResolver;
}
}
}