我们如何以wso2esb邮件格式发送正文

我们如何以wso2esb邮件格式发送正文,wso2,wso2esb,wso2carbon,wso2dss,Wso2,Wso2esb,Wso2carbon,Wso2dss,我正在使用邮件传输,我已经对axis2文件和esb进行了更改,但我的问题是它没有发送我希望发送的正确格式 但它只是发送“主题” 我的配置是这样的 <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="StaticMail" transports="http" startOnLoad="true"

我正在使用邮件传输,我已经对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”的空附件
我们如何发送具有适当正文的邮件请让我知道

您可以使用脚本中介器执行此操作示例如下

下面是另一个示例,它将错误消息作为电子邮件正文发送,将错误代码作为主题发送。这里使用有效负载工厂而不是脚本中介

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

$1

您可以使用脚本中介器执行此操作,示例如下

下面是另一个示例,它将错误消息作为电子邮件正文发送,将错误代码作为主题发送。这里使用有效负载工厂而不是脚本中介

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

$1

实际上,我试过使用payloadFactory,但它将作为附件和soap正文示例消息或参数发送到邮件中,比如$1。您是否尝试使用上述行。我对它进行了测试,工作正常。是的,现在它工作正常了。我为出色的支持添加了很多代码thanx。实际上,我尝试了payloadFactory,但它将作为附件和soap正文示例消息或参数发送到邮件中,如$1。您是否尝试使用上面的行。我对它进行了测试,工作正常。是的,现在工作正常了,我添加了很多代码,以获得出色的支持