API Docs - v2.0.0
Sink
email (Sink)
The email sink uses the 'smtp' server to publish events via emails. The events can be published in 'text', 'xml' or 'json' formats. The user can define email sink parameters in either the '<SP_HOME>/conf/<PROFILE>/deployment yaml' file or in the stream definition. The email sink first checks the stream definition for parameters, and if they are no configured there, it checks the 'deployment.yaml' file. If the parameters are not configured in either place, default values are considered for optional parameters. If you need to configure server system parameters that are not provided as options in the stream definition, then those parameters need to be defined them in the 'deployment.yaml' file under 'email sink properties'.
For more information about the SMTP server parameters, see https://javaee.github.io/javamail/SMTP-Transport.
Further, some email accounts are required to enable the 'access to less secure apps' option. For gmail accounts, you can enable this option via https://myaccount.google.com/lesssecureapps.
Syntax
@sink(type="email", username="<STRING>", address="<STRING>", password="<STRING>", host="<STRING>", port="<INT>", ssl.enable="<BOOL>", auth="<BOOL>", content.type="<STRING>", subject="<STRING>", to="<STRING>", cc="<STRING>", bcc="<STRING>", attachments="<STRING>", @map(...)))
QUERY PARAMETERS
Name | Description | Default Value | Possible Data Types | Optional | Dynamic |
---|---|---|---|---|---|
username | The username of the email account that is used to send emails. e.g., 'abc' is the username of the 'abc@gmail.com' account. |
STRING | No | No | |
address | The address of the email account that is used to send emails. | STRING | No | No | |
password | The password of the email account. | STRING | No | No | |
host | The host name of the SMTP server. e.g., 'smtp.gmail.com' is a host name for a gmail account. The default value 'smtp.gmail.com' is only valid if the email account is a gmail account. | smtp.gmail.com | STRING | Yes | No |
port | The port that is used to create the connection. | '465' the default value is only valid is SSL is enabled. | INT | Yes | No |
ssl.enable | This parameter specifies whether the connection should be established via a secure connection or not. The value can be either 'true' or 'false'. If it is 'true', then the connection is establish via the 493 port which is a secure connection. | true | BOOL | Yes | No |
auth | This parameter specifies whether to use the 'AUTH' command when authenticating or not. If the parameter is set to 'true', an attempt is made to authenticate the user using the 'AUTH' command. | true | BOOL | Yes | No |
content.type | The content type can be either 'text/plain' or 'text/html'. | text/plain | STRING | Yes | No |
subject | The subject of the mail to be send. | STRING | No | Yes | |
to | The address of the 'to' recipient. If there are more than one 'to' recipients, then all the required addresses can be given as a comma-separated list. | STRING | No | Yes | |
cc | The address of the 'cc' recipient. If there are more than one 'cc' recipients, then all the required addresses can be given as a comma-separated list. | None | STRING | Yes | No |
bcc | The address of the 'bcc' recipient. If there are more than one 'bcc' recipients, then all the required addresses can be given as a comma-separated list. | None | STRING | Yes | No |
attachments | File paths of the files that need to be attached to the email. These paths should be absolute paths. They can be either directories or files . If the path is to a directory, all the files located at the first level (i.e., not within another sub directory) are attached. |
None | STRING | Yes | Yes |
System Parameters
Name | Description | Default Value | Possible Parameters |
---|---|---|---|
mail.smtp.ssl.trust | If this parameter is se, and a socket factory has not been specified, it enables the use of a MailSSLSocketFactory. If this parameter is set to "", all the hosts are trusted. If it is set to a whitespace-separated list of hosts, only those specified hosts are trusted. If not, the hosts trusted depends on the certificate presented by the server. | String | |
mail.smtp.connectiontimeout | The socket connection timeout value in milliseconds. | infinite timeout | Any Integer |
mail.smtp.timeout | The socket I/O timeout value in milliseconds. | infinite timeout | Any Integer |
mail.smtp.from | The email address to use for the SMTP MAIL command. This sets the envelope return address. | Defaults to msg.getFrom() or InternetAddress.getLocalAddress(). | Any valid email address |
mail.smtp.localport | The local port number to bind to when creating the SMTP socket. | Defaults to the port number picked by the Socket class. | Any Integer |
mail.smtp.ehlo | If this parameter is set to 'false', you must not attempt to sign in with the EHLO command. | true | true or false |
mail.smtp.auth.login.disable | If this is set to 'true', it is not allowed to use the 'AUTH LOGIN' command. | false | true or false |
mail.smtp.auth.plain.disable | If this parameter is set to 'true', it is not allowed to use the 'AUTH PLAIN' command. | false | true or false |
mail.smtp.auth.digest-md5.disable | If this parameter is set to 'true', it is not allowed to use the 'AUTH DIGEST-MD5' command. | false | true or false |
mail.smtp.auth.ntlm.disable | If this parameter is set to 'true', it is not allowed to use the 'AUTH NTLM' command | false | true or false |
mail.smtp.auth.ntlm.domain | The NTLM authentication domain. | None | The valid NTLM authentication domain name. |
mail.smtp.auth.ntlm.flags | NTLM protocol-specific flags. For more details, see http://curl.haxx.se/rfc/ntlm.html#theNtlmFlags. | None | Valid NTLM protocol-specific flags. |
mail.smtp.dsn.notify | The NOTIFY option to the RCPT command. | None | Either 'NEVER', or a combination of 'SUCCESS', 'FAILURE', and 'DELAY' (separated by commas). |
mail.smtp.dsn.ret | The 'RET' option to the 'MAIL' command. | None | Either 'FULL' or 'HDRS'. |
mail.smtp.sendpartial | If this parameter is set to 'true' and a message is addressed to both valid and invalid addresses, the message is sent with a log that reports the partial failure with a 'SendFailedException' error. If this parameter is set to 'false' (which is default), the message is not sent to any of the recipients when the recipient lists contain one or more invalid addresses. | false | true or false |
mail.smtp.sasl.enable | If this parameter is set to 'true', the system attempts to use the 'javax.security.sasl' package to choose an authentication mechanism for the login. | false | true or false |
mail.smtp.sasl.mechanisms | Enter a space or a comma-separated list of SASL mechanism names that the system shouldt try to use. | None | |
mail.smtp.sasl.authorizationid | The authorization ID to be used in the SASL authentication. If no value is specified, the authentication ID (i.e., username) is used. | username | Valid ID |
mail.smtp.sasl.realm | The realm to be used with the 'DIGEST-MD5' authentication. | None | |
mail.smtp.quitwait | If this parameter is set to 'false', the 'QUIT' command is issued and the connection is immediately closed. If this parameter is set to 'true' (which is default), the transport waits for the response to the QUIT command. | false | true or false |
mail.smtp.reportsuccess | If this parameter is set to 'true', the transport to includes an 'SMTPAddressSucceededException' for each address to which the message is successfully delivered. | false | true or false |
mail.smtp.socketFactory | If this parameter is set to a class that implements the 'javax.net.SocketFactory' interface, this class is used to create SMTP sockets. | None | Socket Factory |
mail.smtp.socketFactory.class | If this parameter is set, it specifies the name of a class that implements the 'javax.net.SocketFactory interface'. This class is used to create SMTP sockets. | None | |
mail.smtp.socketFactory.fallback | If this parameter is set to 'true', the failure to create a socket using the specified socket factory class causes the socket to be created using the 'java.net.Socket' class. | true | true or false |
mail.smtp.socketFactory.port | This specifies the port to connect to when using the specified socket factory. | 25 | Valid port number |
mail.smtp.ssl.protocols | This specifies the SSL protocols that need to be enabled for the SSL connections. | None | This parameter specifies a whitespace separated list of tokens that are acceptable to the 'javax.net.ssl.SSLSocket.setEnabledProtocols' method. |
mail.smtp.starttls.enable | If this parameter is set to 'true', it is possible to issue the 'STARTTLS' command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. | false | true or false |
mail.smtp.starttls.required | If this parameter is set to 'true', it is required to use the 'STARTTLS' command. If the server does not support the 'STARTTLS' command, or if the command fails, the connection method will fail. | false | true or false |
mail.smtp.socks.host | This specifies the host name of a SOCKS5 proxy server to be used for the connections to the mail server. | None | |
mail.smtp.socks.port | This specifies the port number for the SOCKS5 proxy server. This needs to be used only if the proxy server is not using the standard port number 1080. | 1080 | valid port number |
mail.smtp.auth.ntlm.disable | If this parameter is set to 'true', the AUTH NTLM command cannot be issued. | false | true or false |
mail.smtp.mailextension | The extension string to be appended to the MAIL command. | None | |
mail.smtp.userset | If this parameter is set to 'true', you should use the 'RSET' command instead of the 'NOOP' command in the 'isConnected' method. In some scenarios, 'sendmail' responds slowly after many 'NOOP' commands. This is avoided by using 'RSET' instead. | false | true or false |
Examples EXAMPLE 1
@sink(type='email', @map(type ='json'), username='sender.account', address='sender.account@gmail.com',password='account.password',subject='Alerts from Wso2 Stream Processor',to='{{email}}',)define stream FooStream (email string, loginId int, name string);
This example illustrates how to publish events via an email sink based on the values provided for the mandatory parameters. As shown in the example, it publishes events from the 'FooStream' in 'json' format as emails to the specified 'to' recipients via the email sink. The email is sent from the 'sender.account@gmail.com' email address via a secure connection.
EXAMPLE 2
@sink(type='email', @map(type ='json'), subject='Alerts from Wso2 Stream Processor',to='{{email}}',)define stream FooStream (email string, loginId int, name string);
This example illustrates how to configure the query parameters and the system parameters in the 'deployment.yaml' file.
Corresponding parameters need to be configured under 'email', and namespace:'sink' as follows:
siddhi: extensions:
- extension:
name:'email'
namespace:'sink'
properties:
username: <sender's email username>
address: <sender's email address>
password: <sender's email password>
As shown in the example, events from the FooStream are published in 'json' format via the email sink as emails to the given 'to' recipients. The email is sent from the 'sender.account@gmail.com' address via a secure connection.
EXAMPLE 3
@sink(type='email', @map(type ='json'), username='sender.account', address='sender.account@gmail.com',password='account.password',host='smtp.gmail.com',port='465',ssl.enable='true',auth='true',content.type='text/html',subject='Alerts from Wso2 Stream Processor-{{name}}',to='to1.account@gmail.com, to2.account@gmail.com',cc='cc1.account@gmail.com, cc2.account@gmail.com',bcc='bcc1.account@gmail.com)define stream FooStream (name string, age int, country string);
This example illustrates how to publish events via the email sink. Events from the 'FooStream' stream are published in 'xml' format via the email sink as a text/html message and sent to the specified 'to', 'cc', and 'bcc' recipients via a secure connection. The 'name' namespace in the 'subject' attribute is the value of the 'name' parameter in the corresponding output event.
EXAMPLE 4
@sink(type='email', @map(type ='json'), username='sender.account', address='sender.account@gmail.com',password='account.password',host='smtp.gmail.com',port='465',ssl.enable='true',auth='true',content.type='text/html',subject='Alerts from Wso2 Stream Processor-{{name}}',to='to1.account@gmail.com, to2.account@gmail.com',cc='cc1.account@gmail.com, cc2.account@gmail.com',bcc='bcc1.account@gmail.comattachments= '{{attachments}}')define stream FooStream (name string, age int, country string, attachments string);
This example illustrates how to publish events via the email sink. Here, the email also contains attachments.
Events from the FooStream are published in 'xml' format via the email sink as a 'text/html' message to the specified 'to','cc', and 'bcc' recipients via a secure connection. The 'name' namespace in the 'subject' attribute is the value for the 'name' parameter in the corresponding output event.
The attachments included in the email message are the local files available in the path specified as the value for the 'attachments' attribute.
Source
email (Source)
The 'Email' source allows you to receive events via emails. An 'Email' source can be configured using the 'imap' or 'pop3' server to receive events. This allows you to filter the messages that satisfy the criteria specified under the 'search term' option. The email source parameters can be defined in either the '<SP_HOME>/conf/<PROFILE>/deployment yaml' file or the stream definition. If the parameter configurations are not available in either place, the default values are considered (i.e., if default values are available). If you need to configure server system parameters that are not provided as options in the stream definition, they need to be defined in the 'deployment yaml' file under 'email source properties'. For more information about 'imap' and 'pop3' server system parameters, see the following.
[JavaMail Reference Implementation - IMAP Store](https://javaee.github.io/javamail/IMAP-Store)
[JavaMail Reference Implementation - POP3 Store Store](https://javaee.github.io/javamail/POP3-Store)
Syntax
@source(type="email", username="<STRING>", password="<STRING>", store="<STRING>", host="<STRING>", port="<INT>", folder="<STRING>", search.term="<STRING>", polling.interval="<LONG>", action.after.processed="<STRING>", folder.to.move="<STRING>", content.type="<STRING>", ssl.enable="<BOOL>", @map(...)))
QUERY PARAMETERS
Name | Description | Default Value | Possible Data Types | Optional | Dynamic |
---|---|---|---|---|---|
username | The user name of the email account. e.g., 'wso2mail' is the username of the 'wso2mail@gmail.com' mail account. | STRING | No | No | |
password | The password of the email account | STRING | No | No | |
store | The store type that used to receive emails. Possible values are 'imap' and 'pop3'. | imap | STRING | Yes | No |
host | The host name of the server (e.g., 'imap.gmail.com' is the host name for a gmail account with an IMAP store.). The default value 'imap.gmail.com' is only valid if the email account is a gmail account with IMAP enabled. | If store type is 'imap', then the default value is 'imap.gmail.com'. If the store type is 'pop3', then thedefault value is 'pop3.gmail.com'. | STRING | Yes | No |
port | The port that is used to create the connection. | '993', the default value is valid only if the store is 'imap' and ssl-enabled. | INT | Yes | No |
folder | The name of the folder to which the emails should be fetched. | INBOX | STRING | Yes | No |
search.term | The option that includes conditions such as key-value pairs to search for emails. In a string search term, the key and the value should be separated by a semicolon (';'). Each key-value pair must be within inverted commas (' '). The string search term can define multiple comma-separated key-value pairs. This string search term currently supports only the 'subject', 'from', 'to', 'bcc', and 'cc' keys. e.g., if you enter 'subject:DAS, from:carbon, bcc:wso2', the search term creates a search term instance that filters emails that contain 'DAS' in the subject, 'carbon' in the 'from' address, and 'wso2' in one of the 'bcc' addresses. The string search term carries out sub string matching that is case-sensitive. If '@' in included in the value for any key other than the 'subject' key, it checks for an address that is equal to the value given. e.g., If you search for 'abc@', the string search terms looks for an address that contains 'abc' before the '@' symbol. | None | STRING | Yes | No |
polling.interval | This defines the time interval in seconds at which th email source should poll the account to check for new mail arrivals.in seconds. | 600 | LONG | Yes | No |
action.after.processed | The action to be performed by the email source for the processed mail. Possible values are as follows: 'FLAGGED': Sets the flag as 'flagged'. 'SEEN': Sets the flag as 'read'. 'ANSWERED': Sets the flag as 'answered'. 'DELETE': Deletes tha mail after the polling cycle. 'MOVE': Moves the mail to the folder specified in the 'folder.to.move' parameter. If the folder specified is 'pop3', then the only option available is 'DELETE'. |
NONE | STRING | Yes | No |
folder.to.move | The name of the folder to which the mail must be moved once it is processed. If the action after processing is 'MOVE', it is required to specify a value for this parameter. | STRING | No | No | |
content.type | The content type of the email. It can be either 'text/plain' or 'text/html.' | text/plain | STRING | Yes | No |
ssl.enable | If this is set to 'true', a secure port is used to establish the connection. The possible values are 'true' and 'false'. | true | BOOL | Yes | No |
System Parameters
Name | Description | Default Value | Possible Parameters |
---|---|---|---|
mail.imap.partialfetch | This determines whether the IMAP partial-fetch capability should be used. | true | true or false |
mail.imap.fetchsize | The partial fetch size in bytes. | 16K | value in bytes |
mail.imap.peek | If this is set to 'true', the IMAP PEEK option should be used when fetching body parts to avoid setting the 'SEEN' flag on messages. The default value is 'false'. This can be overridden on a per-message basis by the 'setPeek method' in 'IMAPMessage'. | false | true or false |
mail.imap.connectiontimeout | The socket connection timeout value in milliseconds. This timeout is implemented by 'java.net.Socket'. | infinity timeout | Any Integer value |
mail.imap.timeout | The socket read timeout value in milliseconds. This timeout is implemented by 'java.net.Socket'. | infinity timeout | Any Integer value |
mail.imap.writetimeout | The socket write timeout value in milliseconds. This timeout is implemented by using a 'java.util.concurrent.ScheduledExecutorService' per connection that schedules a thread to close the socket if the timeout period elapses. Therefore, the overhead of using this timeout is one thread per connection. | infinity timeout | Any Integer value |
mail.imap.statuscachetimeout | The timeout value in milliseconds for the cache of 'STATUS' command response. | 1000ms | Time out in miliseconds |
mail.imap.appendbuffersize | The maximum size of a message to buffer in memory when appending to an IMAP folder. | None | Any Integer value |
mail.imap.connectionpoolsize | The maximum number of available connections in the connection pool. | 1 | Any Integer value |
mail.imap.connectionpooltimeout | The timeout value in milliseconds for connection pool connections. | 45000ms | Any Integer |
mail.imap.separatestoreconnection | If this parameter is set to 'true', it indicates that a dedicated store connection needs to be used for store commands. | true | true or false |
mail.imap.auth.login.disable | If this is set to 'true', it is not possible to use the non-standard 'AUTHENTICATE LOGIN' command instead of the plain 'LOGIN' command. | false | true or false |
mail.imap.auth.plain.disable | If this is set to 'true', the 'AUTHENTICATE PLAIN' command cannot be used. | false | true or false |
mail.imap.auth.ntlm.disable | If true, prevents use of the AUTHENTICATE NTLM command. | false | true or false |
mail.imap.proxyauth.user | If the server supports the PROXYAUTH extension, this property specifies the name of the user to act as. Authentication to log in to the server is carried out using the administrator's credentials. After authentication, the IMAP provider issues the 'PROXYAUTH' command with the user name specified in this property. | None | Valid string value |
mail.imap.localaddress | The local address (host name) to bind to when creating the IMAP socket. | Defaults to the address picked by the Socket class. | Valid string value |
mail.imap.localport | The local port number to bind to when creating the IMAP socket. | Defaults to the port number picked by the Socket class. | Valid String value |
mail.imap.sasl.enable | If this parameter is set to 'true', the system attempts to use the 'javax.security.sasl' package to choose an authentication mechanism for the login. | false | true or false |
mail.imap.sasl.mechanisms | A list of SASL mechanism names that the system should to try to use. The names can be separated by spaces or commas. | None | Valid string value |
mail.imap.sasl.authorizationid | The authorization ID to use in the SASL authentication. | If this parameter is not set, the authentication ID (username) is used. | Valid string value |
mail.imap.sasl.realm | The realm to use with SASL authentication mechanisms that require a realm, such as 'DIGEST-MD5'. | None | Valid string value |
mail.imap.auth.ntlm.domain | The NTLM authentication domain. | None | Valid string value |
The NTLM authentication domain. | NTLM protocol-specific flags. | None | Valid integer value |
mail.imap.socketFactory | If this parameter is set to a class that implements the 'javax.net.SocketFactory' interface, this class is used to create IMAP sockets. | None | Valid SocketFactory |
mail.imap.socketFactory.class | If this parameter is set, it specifies the name of a class that implements the 'javax.net.SocketFactory' interface. This class is used to create IMAP sockets. | None | Valid string |
mail.imap.socketFactory.fallback | If this parameter is set to 'true', failure to create a socket using the specified socket factory class results in the socket being created using the 'java.net.Socket' class. | true | true or false |
mail.imap.socketFactory.port | This specifies the port to connect to when using the specified socket factory. If this parameter is not set, the default port is used. | 143 | Valid Integer |
mail.imap.ssl.checkserveridentity | If this parameter is set to 'true', the system checks the server identity as specified by RFC 2595. | false | true or false |
mail.imap.ssl.trust | If this parameter is set and a socket factory has not been specified, it enables the use of a 'MailSSLSocketFactory'. If this parameter is set to '', all the hosts are trusted. If this parameter specifies list of hosts separated by white spaces, only those hosts are trusted. If the parameter is not set to any of the values mentioned above, trust depends on the certificate presented by the server. |
Valid String | |
mail.imap.ssl.socketFactory | If this parameter is set to a class that extends the 'javax.net.ssl.SSLSocketFactory' class this class is used to create IMAP SSL sockets. | None | SSL Socket Factory |
mail.imap.ssl.socketFactory.class | If this parameter is set, it specifies the name of a class that extends the 'javax.net.ssl.SSLSocketFactory' class. This class is used to create IMAP SSL sockets. | None | Valid String |
mail.imap.ssl.socketFactory.port | This specifies the port to connect to when using the specified socket factory. | the default port 993 is used. | valid port number |
mail.imap.ssl.protocols | This specifies the SSL protocols that are enabled for SSL connections. The property value is a whitespace-separated list of tokens acceptable to the 'javax.net.ssl.SSLSocket.setEnabledProtocols' method. | None | Valid string |
mail.imap.starttls.enable | If this parameter is set to 'true', it is possible to use the 'STARTTLS' command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. | false | true or false |
mail.imap.socks.host | This specifies the host name of a 'SOCKS5' proxy server that is used to connect to the mail server. | None | Valid String |
mail.imap.socks.port | This specifies the port number for the 'SOCKS5' proxy server. This is needed if the proxy server is not using the standard port number 1080. | 1080 | Valid String |
mail.imap.minidletime | This property sets the delay in milliseconds. | 10 milliseconds | time in seconds (Integer) |
mail.imap.enableimapevents | If this property is set to 'true', it enables special IMAP-specific events to be delivered to the 'ConnectionListener' of the store. The unsolicited responses received during the idle method of the store are sent as connection events with 'IMAPStore.RESPONSE' as the type. The event's message is the raw IMAP response string. | false | true or false |
mail.imap.folder.class | The class name of a subclass of 'com.sun.mail.imap.IMAPFolder'. The subclass can be used to provide support for additional IMAP commands. The subclass must have public constructors of the form 'public MyIMAPFolder'(String fullName, char separator, IMAPStore store, Boolean isNamespace) and public 'MyIMAPFolder'(ListInfo li, IMAPStore store) | None | Valid String |
mail.pop3.connectiontimeout | The socket connection timeout value in milliseconds. | Infinite timeout | Integer value |
mail.pop3.timeout | The socket I/O timeout value in milliseconds. | Infinite timeout | Integer value |
mail.pop3.message.class | The class name of a subclass of 'com.sun.mail.pop3.POP3Message'. | None | Valid String |
mail.pop3.localaddress | The local address (host name) to bind to when creating the POP3 socket. | Defaults to the address picked by the Socket class. | Valid String |
mail.pop3.localport | The local port number to bind to when creating the POP3 socket. | Defaults to the port number picked by the Socket class. | Valid port number |
mail.pop3.apop.enable | If this parameter is set to 'true', use 'APOP' instead of 'USER/PASS' to log in to the 'POP3' server (if the 'POP3' server supports 'APOP'). APOP sends a digest of the password instead of clearing the text password. | false | true or false |
mail.pop3.socketFactory | If this parameter is set to a class that implements the 'javax.net.SocketFactory' interface, this class is used to create 'POP3' sockets. | None | Socket Factory |
mail.pop3.socketFactory.class | If this parameter is set, it specifies the name of a class that implements the 'javax.net.SocketFactory' interface. This class is used to create 'POP3' sockets. | None | Valid String |
mail.pop3.socketFactory.fallback | If this parameter is set to 'true', failure to create a socket using the specified socket factory class results in the socket being created using the 'java.net.Socket' class. | false | true or false |
mail.pop3.socketFactory.port | This specifies the port to connect to when using the specified socket factory. | Default port | Valid port number |
mail.pop3.ssl.checkserveridentity | If this parameter is set to 'true', check the server identity as specified by RFC 2595. | false | true or false |
mail.pop3.ssl.trust | If this parameter is set and a socket factory has not been specified, it is possible to use a 'MailSSLSocketFactory'. If this parameter is set to '', all the hosts are trusted. If the parameter is set to a whitespace-separated list of hosts, only those hosts are trusted. If the parameter is not set to any of the values mentioned above, trust depends on the certificate presented by the server. |
Valid String | |
mail.pop3.ssl.socketFactory | If this parameter is set to a class that extends the 'javax.net.ssl.SSLSocketFactory' class, this class is used to create 'POP3' SSL sockets. | None | SSL Socket Factory |
mail.pop3.ssl.checkserveridentity | If this parameter is set to 'true', the system checks the server identity as specified by 'RFC 2595'. | false | true or false |
mail.pop3.ssl.trust | If this parameter is set and a socket factory has not been specified, it is possible to use a 'MailSSLSocketFactory'. If this parameter is set to '*', all the hosts are trusted. If the parameter is set to a whitespace-separated list of hosts, only those hosts are trusted. |
Trust depends on the certificate presented by the server. | Valid String |
mail.pop3.ssl.socketFactory | If this parameter is set to a class that extends the 'javax.net.ssl.SSLSocketFactory' class, this class is used to create 'POP3 SSL' sockets. | None | SSL Socket Factory |
mail.pop3.ssl.socketFactory.class | If this parameter is set, it specifies the name of a class that extends the 'javax.net.ssl.SSLSocketFactory' class. This class is used to create 'POP3 SSL' sockets. | None | Valid String |
mail.pop3.ssl.socketFactory.p | This parameter pecifies the port to connect to when using the specified socket factory. | 995 | Valid Integer |
mail.pop3.ssl.protocols | This parameter specifies the SSL protocols that are enabled for SSL connections. The property value is a whitespace-separated list of tokens acceptable to the 'javax.net.ssl.SSLSocket.setEnabledProtocols' method. | None | Valid String |
mail.pop3.starttls.enable | If this parameter is set to 'true', it is possible to use the 'STLS' command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. | false | true or false |
mail.pop3.starttls.required | If this parameter is set to 'true', it is required to use the 'STLS' command. The connect method fails if the server does not support the 'STLS' command or if the command fails. | false | true or false |
mail.pop3.socks.host | This parameter specifies the host name of a 'SOCKS5' proxy server that can be used to connect to the mail server. | None | Valid String |
mail.pop3.socks.port | This parameter specifies the port number for the 'SOCKS5' proxy server. | None | Valid String |
mail.pop3.disabletop | If this parameter is set to 'true', the 'POP3 TOP' command is not used to fetch message headers. | false | true or false |
mail.pop3.forgettopheaders | If this parameter is set to 'true', the headers that might have been retrieved using the 'POP3 TOP' command is forgotten and replaced by the headers retrieved when the 'POP3 RETR' command is executed. | false | true or false |
mail.pop3.filecache.enable | If this parameter is set to 'true', the 'POP3' provider caches message data in a temporary file instead of caching them in memory. Messages are only added to the cache when accessing the message content. Message headers are always cached in memory (on demand). The file cache is removed when the folder is closed or the JVM terminates. | false | true or false |
mail.pop3.filecache.dir | If the file cache is enabled, this property is used to override the default directory used by the JDK for temporary files. | None | Valid String |
mail.pop3.cachewriteto | This parameter controls the behavior of the 'writeTo' method on a 'POP3' message object. If the parameter is set to 'true', the message content has not been cached yet, and the 'ignoreList' is null, the message is cached before being written. If not, the message is streamed directly to the output stream without being cached. | false | true or false |
mail.pop3.keepmessagecontent | If this property is set to 'true', a hard reference to the cached content is retained, preventing the memory from being reused until the folder is closed, or until the cached content is explicitly invalidated (using the 'invalidate' method). | false | true or false |
Examples EXAMPLE 1
@source(type='email', @map(type='xml'), username='receiver.account', password='account.password',)define stream inputStream (name string, age int, country string);
This example illustrates how to receive events in 'xml' format via the email source. In this example, only the required parameters are defined in the stream definition. The default values are taken for the other parameters. The search term is not defined, and therefore, all the new messages in the inbox folder are polled and taken.
EXAMPLE 2
@source(type='email', @map(type='xml'), username='receiver.account', password='account.password',store = 'imap',host = 'imap.gmail.com',port = '993',searchTerm = 'subject:Stream Processor, from: from.account@ , cc: cc.account',polling.interval='500',action.after.processed='DELETE',content.type='text/html,)define stream inputStream (name string, age int, country string);
This example illustrates how to receive events in 'xml' format via the email source. The email source polls the mail account every 500 seconds to check whether any new mails have arrived. It processes new mails only if they satisfy the conditions specified for the email search term (the value for 'from' of the email message should be 'from.account@.<host name>', and the message should contain 'cc.account' in the cc receipient list and the word 'Stream Processor' in the mail subject). in this example, the action after processing is 'DELETE'. Therefore,after processing the event, corresponding mail is deleted from the mail folder.