WSO2 ESB 发送 HTML 电子邮件
WSO2 ESB Send HTML email
我有代理发送电子邮件。
我收到 mailto、主题和正文(html 格式)
我配置axis2.xml
添加
<messageFormatter class="org.apache.axis2.transport.http.ApplicationXMLFormatter" contentType="text/html"/>
我的序列有效,发送电子邮件,但带有硬编码正文:
<sequence name="SendMailTransportSequence" trace="disable"
xmlns="http://ws.apache.org/ns/synapse">
<property name="messageType" scope="axis2" value="text/html" />
<property name="ContentType" scope="axis2" value="text/html" />
<property name="OUT_ONLY" scope="default" value="true" />
<property name="FORCE_SC_ACCEPTED" scope="axis2" value="true" />
<!-- SUBJECT -->
<property expression="get-property('mail.asunto')" name="Subject"
scope="transport" />
<!-- TO -->
<property expression="get-property('mail.destinatario')" name="uri.var.dest"
scope="default" type="STRING" />
<header expression="fn:concat('mailto:',get-property('uri.var.dest'))"
name="To" scope="default" />
<!-- BODY -->
<script language="js"><![CDATA[
mc.setPayloadXML(<html><h1>this is the title</h1><br/><p>this is the content................</p></html>);
]]></script>
<send />
</sequence>
收到的邮件:
但是当我尝试从 属性 发送正文时,我无法到达
我试试
<script language="js"><![CDATA[
var body = mc.getProperty("mail.cuerpo");
mc.setPayloadXML(<html>{body}</html>);
]]></script>
也试试
<script language="js"><![CDATA[
var body = "<h1>this is the title</h1><br/><p>this is the content................</p>";
mc.setPayloadXML(<html>{body}</html>);
]]></script>
在这两种情况下,内容都像文本一样被尝试
另一方面,我尝试使用 payload factory 但没有成功:
在这种情况下,内容像附件一样发送,没有名称
<payloadFactory media-type="xml">
<format>
<Body></Body>
</format>
<args>
<arg evaluator="xml" expression="get-property('mail.cuerpo')" />
</args>
</payloadFactory>
在这种情况下,邮件正文也像纯文本一样收到
<payloadFactory media-type="xml">
<format>
<ns:text xmlns:ns="http://ws.apache.org/commons/ns/payload"></ns:text>
</format>
<args>
<arg evaluator="xml" expression="get-property('mail.cuerpo')" />
</args>
</payloadFactory>
那么,以 html 格式发送电子邮件的正确格式是什么?
提前致谢
在这种情况下,您不能在文本字符串中附加 XML 元素。所以你必须用 XML child 添加值。因为 WSO2 esb 使用 java 脚本犀牛。使用 E4X 写入。
var nextId = 1234;
var first = "John";
var last = "Smith";
var c = <table>
<tr>
<th>Table header</th>
<th>Table header</th>
</tr>
<tr>
<td>{first}</td>
<td>{last}</td>
</tr>
</table>;
for (i = 0; i < 10; i++) {
c.table += <tr>
<td>{i}</td>
<td>{i}</td>
</tr>;
}
mc.setPayloadXML(c);
希望你能从上面的代码中得到启发。如果您想了解更多。请参阅此 link .E4X Quick Start Guide
我有代理发送电子邮件。 我收到 mailto、主题和正文(html 格式)
我配置axis2.xml 添加
<messageFormatter class="org.apache.axis2.transport.http.ApplicationXMLFormatter" contentType="text/html"/>
我的序列有效,发送电子邮件,但带有硬编码正文:
<sequence name="SendMailTransportSequence" trace="disable"
xmlns="http://ws.apache.org/ns/synapse">
<property name="messageType" scope="axis2" value="text/html" />
<property name="ContentType" scope="axis2" value="text/html" />
<property name="OUT_ONLY" scope="default" value="true" />
<property name="FORCE_SC_ACCEPTED" scope="axis2" value="true" />
<!-- SUBJECT -->
<property expression="get-property('mail.asunto')" name="Subject"
scope="transport" />
<!-- TO -->
<property expression="get-property('mail.destinatario')" name="uri.var.dest"
scope="default" type="STRING" />
<header expression="fn:concat('mailto:',get-property('uri.var.dest'))"
name="To" scope="default" />
<!-- BODY -->
<script language="js"><![CDATA[
mc.setPayloadXML(<html><h1>this is the title</h1><br/><p>this is the content................</p></html>);
]]></script>
<send />
</sequence>
收到的邮件:
但是当我尝试从 属性 发送正文时,我无法到达
我试试
<script language="js"><![CDATA[
var body = mc.getProperty("mail.cuerpo");
mc.setPayloadXML(<html>{body}</html>);
]]></script>
也试试
<script language="js"><![CDATA[
var body = "<h1>this is the title</h1><br/><p>this is the content................</p>";
mc.setPayloadXML(<html>{body}</html>);
]]></script>
在这两种情况下,内容都像文本一样被尝试
另一方面,我尝试使用 payload factory 但没有成功:
在这种情况下,内容像附件一样发送,没有名称
<payloadFactory media-type="xml">
<format>
<Body></Body>
</format>
<args>
<arg evaluator="xml" expression="get-property('mail.cuerpo')" />
</args>
</payloadFactory>
在这种情况下,邮件正文也像纯文本一样收到
<payloadFactory media-type="xml">
<format>
<ns:text xmlns:ns="http://ws.apache.org/commons/ns/payload"></ns:text>
</format>
<args>
<arg evaluator="xml" expression="get-property('mail.cuerpo')" />
</args>
</payloadFactory>
那么,以 html 格式发送电子邮件的正确格式是什么? 提前致谢
在这种情况下,您不能在文本字符串中附加 XML 元素。所以你必须用 XML child 添加值。因为 WSO2 esb 使用 java 脚本犀牛。使用 E4X 写入。
var nextId = 1234;
var first = "John";
var last = "Smith";
var c = <table>
<tr>
<th>Table header</th>
<th>Table header</th>
</tr>
<tr>
<td>{first}</td>
<td>{last}</td>
</tr>
</table>;
for (i = 0; i < 10; i++) {
c.table += <tr>
<td>{i}</td>
<td>{i}</td>
</tr>;
}
mc.setPayloadXML(c);
希望你能从上面的代码中得到启发。如果您想了解更多。请参阅此 link .E4X Quick Start Guide