我正在使用邮件传输,我已经完成了对axis2文件的更改和我的esb毁了罚款邮件但我的问题是它不发送更合适的格式我希望发送正文 但它只是发送“主题” 我的配置就像这样
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="StaticMail"
transports="http"
startOnLoad="true"
trace="disable">
<description/>
<target>
<inSequence>
<property name="senderAddress"
expression="//mail/text()"
scope="default"/>
<property name="Subject" value="Alert:Reading Out of Range" scope="transport"/>
<property name="message" value="Response message" scope="transport"/>
<property name="body" expression="//list/text()" scope="default"/>
<header name="To"
expression="fn:concat('mailto:', get-property('senderAddress'))"/>
<property name="OUT_ONLY" value="true"/>
<log level="full">
<property name="message" value="Response message"/>
<property name="Sender Address" expression="get-property('senderAddress')"/>
</log>
<send/>
</inSequence>
<outSequence/>
</target>
</proxy>
但它只发送邮件格式
提醒:作为主题读取超出范围 没有人用于邮件和一个空的附件“noname” 我们如何发送带有适当身体的邮件请告诉我
答案 0 :(得分:6)
您可以使用脚本调解器执行此操作,样本为here
这是另一个将错误消息作为电子邮件正文和错误代码作为主题发送的示例。这里使用有效负载工厂而不是脚本中介。
<faultSequence>
<property xmlns:ns="http://org.apache.synapse/xsd" name="ErrorCode" expression="get-property('ERROR_CODE')" scope="default" type="INTEGER"/>
<property name="ErrorMessage" expression="get-property('ERROR_MESSAGE')" scope="default" type="STRING"/>
<property name="messageType" value="text/html" scope="axis2"/>
<property name="ContentType" value="text/html" scope="axis2"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="Subject" expression="$ctx:ErrorCode" scope="transport"/>
<payloadFactory>
<format>
<ns:text xmlns:ns="http://ws.apache.org/commons/ns/payload">$1</ns:text>
</format>
<args>
<arg expression="$ctx:ErrorMessage"/>
</args>
</payloadFactory>
<property name="OUT_ONLY" value="true"/>
<send>
<endpoint>
<address uri="mailto:youremail@gmail.com"/>
</endpoint>
</send>
</faultSequence>