= Email connector
:description: This connector will send an email message when activated.

This connector will send an email message when activated.

There is no output returned.

NOTE: There is no way to set proxy server settings in this wizard. +
If there is a Proxy server setup in the company, ask the IT department for the specific configuration.

Use the wizard and the information below to configure the connector. +
You can use the expression editor to specify an expression to provide the value, including scripts or variables. +
The expression must return a value of the required type. To specify the message content, you can also use a rich text editor.

*Connection information:*

|===
| Input | Description | Type

| SMTP Host
| IP address or name of email server
| String

| SMTP Port
| Port defined for email system
| Number

| Security > SSL (not required)
| Check the box if SSL security authorization is required
|

| Security > STARTTLS (not required)
| Check the box if STARTTLS security authorization is required
|

| Authentication > Username
| User name for the host account
| String

| Authentication > Password
| User password for the host account
| String
|===

*Addressing information:*

|===
| Input | Description | Type

| From
| Sender email address
| String

| To
| Receiver email address
| String

| Return-Path
| Email address that identifies where the email originated
| String

| Other > Reply to
| Email address to use when user tries to reply
| String

| Other > CC
| Email address to use for a copy
| String

| Other > BCC (hidden copy)
| Email address to use for a hidden copy
| String
|===

All addresses should use the syntax of https://www.ietf.org/rfc/rfc822.txt[RFC822]. +
It is possible to add sender name with the following syntax in the `from` input: +
`john.doe@acme.com (John Doe)` +
If the sender name contains non-ASCII characters, it is possible to specify a charset and the character hexadecimal byte(s) like this (see https://tools.ietf.org/html/rfc1342[rfc1342]): +
`andre.picard@acme.com (=?ISO-8859-1?Q?Andr=E9_?= Pirard)` where `E9` is the hexadecimal byte of `é` character in `ISO-8859-1` charset. +
Here is an example of a groovy expression that converts the `senderName` variable into the an rfc1342 compliant format using `UTF-8` charset:

[source,groovy]
----
"$senderAddress (=?UTF-8?Q?=${senderName.getBytes('UTF-8').collect{it & 0xFF}.collect{Integer.toHexString((int) it) }.join('=')}?=)"
----

*Message content:*

|===
| Input | Description | Type

| Subject
| Text
| String

| Message
| Message content, which can be specified with the expression editor or with a WYSIWYG editor
| String

| Attachments
| Include email attachments defined as a variables or expressions
| String
|===

*Character set and additional header information (optional):*

|===
| Input | Description | Type

| Character set
| Character set
| String

| Headers
| Add optional header information
| String
|===

[.troubleshooting-title]
== Troubleshooting

[.troubleshooting-section]
--
[.symptom]
Exception is: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

[.cause]#Cause#
When an instance is using an Email connector version 1.1.0 (delivered with Bonita up to 7.10 version), we are getting this exception.
This is due to the fact that Email connector version 1.1.0 is not supporting the TLSv2.
After Bonita 7.10 version, Email connector versions are 1.2.0 and 1.3.0. Those versions are supporting TLSv2 and won't generate such exception.

[.solution]#Solution#

1. Edit your java.security file (avaiable under <JAVA_HOME>\jre\lib\security or <JAVA_HOME>\conf\security folders).

2. Locate the section defining `jdk.tls.disabledAlgorithms` parameter and remove the algorithm restrictions for `TLSv1` and `TLSv1.1`

3. Save the change and restart your Bonita runtime.

See an sample of change to do in your `java.security` file:

[source,log]
----
#jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

----


[NOTE]
====

On failed tasks due to this exception, it's necessary to apply this solution and then to replay all these failed tasks following our standard procedure xref:admin-application-task-list.adoc#_replay_a_failed_flow_node[Replay a failed flow node].

====

--
