[[AWS-SES-SESComponent]]
SES Component
~~~~~~~~~~~~~

*Available as of Camel 2.8.4*

The ses component supports sending emails with
http://aws.amazon.com/ses[Amazon's SES] service.

Prerequisites

You must have a valid Amazon Web Services developer account, and be
signed up to use Amazon SES. More information are available at
http://aws.amazon.com/ses[Amazon SES].

[[AWS-SES-URIFormat]]
URI Format
^^^^^^^^^^

[source,java]
------------------------
aws-ses://from[?options]
------------------------

You can append query options to the URI in the following format,
?options=value&option2=value&...

[[AWS-SES-URIOptions]]
URI Options
^^^^^^^^^^^

[width="100%",cols="10%,10%,10%,70%",options="header",]
|=======================================================================
|Name |Default Value |Context |Description

|amazonSESClient |`null` |Producer |Reference to a
`com.amazonaws.services.simpleemail.AmazonSimpleEmailService` in the
link:registry.html[Registry].

|accessKey |`null` |Producer |Amazon AWS Access Key

|secretKey |`null` |Producer |Amazon AWS Secret Key

|amazonSESEndpoint |`null` |Producer |The region with which the AWS-SES client wants to work with.

|subject |`null` |Producer |The subject which is used if the message header 'CamelAwsSesSubject' is
not present.

|to |`null` |Producer |List of destination email address. Can be overriden with 'CamelAwsSesTo'
header.

|returnPath |`null` |Producer |The email address to which bounce notifications are to be forwarded,
override it using 'CamelAwsSesReturnPath' header.

|replyToAddresses |`null` |Producer |List of reply-to email address(es) for the message, override it using
'CamelAwsSesReplyToAddresses' header.

|proxyHost |`null` |Producer |*Camel 2.16*: Specify a proxy host to be used inside the client
definition.

|proxyPort |`null` |Producer |*Camel 2.16*: Specify a proxy port to be used inside the client
definition.
|=======================================================================

Required SES component options

You have to provide the amazonSESClient in the
link:registry.html[Registry] or your accessKey and secretKey to access
the http://aws.amazon.com/ses[Amazon's SES].

[[AWS-SES-Usage]]
Usage
^^^^^

[[AWS-SES-MessageheadersevaluatedbytheSESproducer]]
Message headers evaluated by the SES producer
+++++++++++++++++++++++++++++++++++++++++++++

[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Type |Description

|`CamelAwsSesFrom` |`String` |The sender's email address.

|`CamelAwsSesTo` |`List<String>` |The destination(s) for this email.

|`CamelAwsSesSubject` |`String` |The subject of the message.

|`CamelAwsSesReplyToAddresses` |`List<String>` |The reply-to email address(es) for the message.

|`CamelAwsSesReturnPath` |`String` |The email address to which bounce notifications are to be forwarded.

|`CamelAwsSesHtmlEmail` |`Boolean` |*Since Camel 2.12.3* The flag to show if email content is HTML.
|=======================================================================

[[AWS-SES-MessageheaderssetbytheSESproducer]]
Message headers set by the SES producer
+++++++++++++++++++++++++++++++++++++++

[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Type |Description

|`CamelAwsSesMessageId` |`String` |The Amazon SES message ID.
|=======================================================================

[[AWS-SES-AdvancedAmazonSimpleEmailServiceconfiguration]]
Advanced AmazonSimpleEmailService configuration
+++++++++++++++++++++++++++++++++++++++++++++++

If you need more control over the `AmazonSimpleEmailService` instance
configuration you can create your own instance and refer to it from the
URI:

[source,java]
-------------------------------------------------------------
from("direct:start")
.to("aws-ses://example@example.com?amazonSESClient=#client");
-------------------------------------------------------------

The `#client` refers to a `AmazonSimpleEmailService` in the
link:registry.html[Registry].

For example if your Camel Application is running behind a firewall:

[source,java]
----------------------------------------------------------------------------------------------------------
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setProxyHost("http://myProxyHost");
clientConfiguration.setProxyPort(8080);
AmazonSimpleEmailService client = new AmazonSimpleEmailServiceClient(awsCredentials, clientConfiguration);

registry.bind("client", client);
----------------------------------------------------------------------------------------------------------

[[AWS-SES-Dependencies]]
Dependencies
^^^^^^^^^^^^

Maven users will need to add the following dependency to their pom.xml.

*pom.xml*

[source,xml]
---------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
---------------------------------------

where `${camel-version`} must be replaced by the actual version of Camel
(2.8.4 or higher).

[[AWS-SES-SeeAlso]]
See Also
^^^^^^^^

* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]

* link:aws.html[AWS Component]

