Patrice
Patrice

Reputation: 1444

Sending to dynamic address endpoint

How can one send an email to a dynamic address? Address endpoint's URI seem to be static. Is there a way to inject a property in a address endpoint ?

Here is what I have so far :

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="sendMail" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <property expression="//email" name="email" scope="default" type="STRING"/>
    <log level="custom">
        <property expression="fn:concat('Sending mail to - ',get-property('mail'))" name="mail"/>
    </log>
    <property name="messageType" value="text/html" scope="axis2"/>
    <property name="ContentType" value="text/html" scope="axis2"/>
    <property name="Subject" value="File Received" scope="transport"/>
    <property name="OUT_ONLY" value="true"/>
    <send>
        <endpoint name="mail2user">
            <address uri="mailto:[email protected]"/>
        </endpoint>
    </send>
</sequence>

Thanks.

Upvotes: 0

Views: 381

Answers (2)

Patrice
Patrice

Reputation: 1444

Here is the final code after jean-michel suggestion :

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="sendMail" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <property expression="//email" name="mailto" scope="default" type="STRING"/>
    <log level="custom">
        <property expression="fn:concat('Sending mail to - ',get-property('mailto'))" name="mail"/>
    </log>
    <property name="messageType" scope="axis2" type="STRING" value="text/html"/>
    <property name="ContentType" scope="axis2" type="STRING" value="text/html"/>
    <property name="Subject" scope="transport" type="STRING" value="File Received"/>
    <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
    <header expression="fn:concat('mailto:', get-property('mailto'))" name="To" scope="default"/>
    <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
    <send/>
</sequence>

Upvotes: 0

Jean-Michel
Jean-Michel

Reputation: 5946

Define header "To" and use send without endpoint :

<header name="To"expression="fn:concat('mailto:', get-property('senderAddress'))"/>
<property name="OUT_ONLY" value="true"/>
<send/>

Don't forget to define transportSender "mailto" with class "org.apache.axis2.transport.mail.MailTransportSender" in axis2.xml

Upvotes: 1

Related Questions