发送到动态地址端点

Sending to dynamic address endpoint

如何向动态地址发送电子邮件? 地址端点的 URI 似乎是静态的。 有没有办法在地址端点中注入 属性?

这是我目前的情况:

<?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:username@gmail.com"/>
        </endpoint>
    </send>
</sequence>

谢谢。

定义 header "To" 并使用无端点发送:

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

不要忘记在 axis2.xml

中用 class "org.apache.axis2.transport.mail.MailTransportSender" 定义 transportSender "mailto"

这是 jean-michel 建议后的最终代码:

<?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>