
* Step 1 : A JBI Consumer sends a Message Exchange to the Mail Binding Component.
* Step 2 : Mail Binding Component processes the Message Exchange : transforms it into a mail message and retrieve targeted External Provider Service (email address) linked to the endpoint set in the Message Exchange.
* Step 3 : Mail Binding Component sends this new mail to the targeted External Provider Service (Business Service, simple email account...).
h2. Dynamic Exposition
The component can expose directly a generic SendMail service without deploying a service unit.
To allow the component to provide his generic service, the component must have a wsdl with the name : component.wsdl. An example of this file is present in the component.To deactivate the generic service supplies by the component,simply erase the file : component.wsdl.
Parameters (host, port, user, passwordl) have to be defined at component level (cf section *Component Configuration*), otherwise the component can not know the technical information of the smtp server necessary for the generic sendMail service.
\\
This service offer two mode :
* In-Payload mode: The service allows the consumer to send a specific XML message to the component, which defines all the information needed to send an email.
The message send by the consumer has to respect the following definition:
{code:lang=xml}
<ns0:mail xmlns:ns0="http://petals.ow2.org/components/mail/version-3.0">
<ns0:from>from@from.com</ns0:from>
<ns0:reply>reply@reply.com</ns0:reply>
<ns0:to>to@to.com</ns0:to>
<ns0:subject>subject</ns0:subject>
<ns0:body>Hello, here is an email</ns0:body>
</ns0:mail>
{code}
* Out-Payload mode : The service allows the consumer to send a JBI message to the component by setting ws-addressing properties in the incoming message exchange which defines all the information needed to send an email.The content of the mail (body) is in the payload of the mesage.
|| Attribute || Description || Default || Required ||
| \{\[http://www.w3.org/2005/08/addressing\]}To | email address of the recipient | {center}\-{center} | {center}Yes{center} |
| \{\[http://www.w3.org/2005/08/addressing\]}From | email address of the sender | {center}\-{center} | {center}Yes{center} |
| \{\[http://www.w3.org/2005/08/addressing\]}ReplyTo | email address for the reply | {center}\-{center} | {center}no{center} |
| \{\[http://www.w3.org/2005/08/addressing\]}Action | the subject of the mail | {center}petals-bc-mail{center} | {center}no{center} |
h2. Static exposition
Petals Mail binding component can be configured by deploying a new service unit to it. The jbi descriptor ( jbi.xml file) of this service unit must contain a provides node describing the link between an internal jbi endpoint and an external email address.
h3. Usage
Once a provides node is configured, you can start to send email via the mail binding component. You just have to send message exchange to endpoints activated by service unit deployments (containing jbi.xml with provides node).
The IN message looks like :
{code:lang=xml}
<?xml version="1.0" encoding="UTF-8"?>
<mail>[#5]mail by using service unit</mail>
{code}
{warning:title=warning}
InOnly message exchange patterns are allowed.
{warning}
h3. Configuration
h4. Service Unit descriptor
{code:lang=xml}
<?xml version="1.0" encoding="UTF-8"?>
<!-- JBI descriptor for PEtALS' "petals-bc-mail" (Mail), version 3.0 -->
<jbi:jbi version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jbi="http://java.sun.com/xml/ns/jbi"
xmlns:mail="http://petals.ow2.org/components/mail/version-3.0"
xmlns:petalsCDK="http://petals.ow2.org/components/extensions/version-4.0"
xmlns:generatedNs="http://test">
<!-- Import a Service into PEtALS or Expose a PEtALS Service => use a BC. -->
<jbi:services binding-component="true">
<!-- Import a Service into PEtALS => provides a Service. -->
<jbi:provides
interface-name="generatedNs:SendMail"
service-name="generatedNs:SendMailService"
endpoint-name="SendMailServiceEndpoint">
<!-- CDK specific elements -->
<petalsCDK:wsdl>sendMail.wsdl</petalsCDK:wsdl>
<!-- Component specific elements -->
<mail:scheme>smtp</mail:scheme>
<mail:host>smtp.host.com</mail:host>
<mail:port>25</mail:port>
<mail:user>user</mail:user>
<mail:password>password</mail:password>
<mail:from>from email address</mail:from>
<mail:reply>reply email address</mail:reply>
<mail:to>recipient address</mail:to>
<mail:subject>mail subject</mail:subject>
</jbi:provides>
</jbi:services>
</jbi:jbi>
{code}
{include:0 CDK SU Provide Configuration}
\\
{center}{*}Configuration of a Service Unit to provide a service (Mail)*{center}
{table-plus}