What is the BC-Mail ?The Petals Mail binding component is a bidirectional binding component, it allows to :
Component ConfigurationUnable to render {include} Couldn't find a page to include called: 0 CDK Component Configuration Table
Definition of CDK parameter scope :
Exposing a smtp connection as a service.PROVIDE SERVICE : Import into the JBI environment an email account as a service, or use a generic SendMail service : Petals Mail binding component allows JBI consumers to send mails to an email account. A JBI endpoint is registered into the JBI environment, and is linked to an smtp server, with an email address defined. When MailBC receives a message exchange from Petals platform, the content of the message is sent to the defined email address.
Dynamic ExpositionThe component can expose directly a generic SendMail service.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.The component parameter see below have to be defines(host, port, user, passwordl).Otherwise the component cannot know the technical information of the smtp server necessary for the generic sendMail service.
The message send by the consumer has to respect the following definition: <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>
Static expositionService Unit descriptorPetals 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. Here is an exemple of jbi descriptor activating a new "provided service" : <?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> Configuration of a Service Unit to provide a service (JBI)
Configuration of a Service Unit to provide a service (CDK)
Service Unit contentThe Service Unit has to contain the following elements, packaged in an archive :
su-mail.zip + META-INF - jbi.xml - service.xml UsageOnce 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).
Invoking service on incoming email
Petals Mail binding component (MailBC) allows to receive mails from external consumer and to bind them to message exchanges intinded to internal jbi components. To receive new mails, MailBC can be linked to specific mail stores. It will check these stores periodicaly to retrieve new mails. If it finds a new mail in a store, it will process it (map this mail to a message exchange) and send it to the targeted jbi endpoint. Then the mail is removed from the store. So, all mails (read or unread) in a store are considered as new mail.
Service Unit descriptorPetals 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 contains a consumes node describing the link between an external mail store and an internal jbi endpoint. Here is an exemple of jbi descriptor activating a new "consumed service" : <?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"> <!-- Expose a PEtALS Service => consumes a Service. --> <jbi:consumes interface-name="generatedNs:Interface" service-name="generatedNs:Service" endpoint-name="Endpoint"> <!-- CDK specific elements --> <petalsCDK:operation>operation</petalsCDK:operation> <petalsCDK:mep>InOnly</petalsCDK:mep> <!-- Component specific elements --> <mail:scheme>pop3</mail:scheme> <mail:host>pop.host.com</mail:host> <mail:port>110</mail:port> <mail:user>user</mail:user> <mail:password>password</mail:password> <mail:folder>INBOX</mail:folder> <mail:period>60000</mail:period> </jbi:consumes> </jbi:services> </jbi:jbi> Configuration of a Service Unit to consume a service (JBI)
Configuration of a Service Unit to consume a service (CDK)
Configuration of a Service Unit to consume a service (Mail) Service Unit contentThe Service Unit has to contain the following elements, packaged in an archive :
su-mail.zip + META-INF - jbi.xml UsageWhen a new email is in the INBOX folder of the configured email account, the content of the mail is forwarded to the JBI Service defined in the Consumes section of the Service Unit.
|
Table of contents Contributors |