我在WSO2-ESB5.0中创建了电子邮件接收器代理,代理连接到电子邮箱,我在日志中看到文本“处理消息#:1在同一个线程中”。
但是代理正文中没有任何内容被打印出来,我希望代理应该阅读电子邮件正文并传递给代理的序列。
当我将属性ActionAfterProcess设置为MOVE / DELETE时,电子邮件也没有被移动或删除。
答案 0 :(得分:0)
以下是我的代理示例:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="MailTransportProtocolIMAP"
transports="mailto"
startOnLoad="true"
statistics="enable"
trace="enable">
<description/>
<target>
<inSequence>
<log level="full">
</log>
<log category="ERROR">
<property name="emailBody" expression="$body/*"/>
</log>
<drop/>
</inSequence>
<outSequence>
<log category="ERROR">
<property name="emailBody" expression="$body/*"/>
</log>
<send/>
</outSequence>
</target>
<parameter name="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
<parameter name="mail.imap.starttls.enable">false</parameter>
<parameter name="transport.mail.ContentType">application/xml</parameter>
<parameter name="mail.imap.host">outlook.74.net</parameter>
<parameter name="transport.mail.Address">abc@abc.com</parameter>
<parameter name="mail.imap.user">abc123</parameter>
<parameter name="mail.imap.socketFactory.port">993</parameter>
<parameter name="transport.mail.ActionAfterFailure">DELETE</parameter>
<parameter name="transport.mail.ActionAfterProcess">DELETE</parameter>
<parameter name="transport.PollInterval">2</parameter>
<parameter name="mail.imap.port">995</parameter>
<parameter name="mail.imap.ssl.enable">false</parameter>
<parameter name="transport.mail.MoveAfterFailure">Inbox/Failed</parameter>
<parameter name="transport.mail.Folder">Inbox/TestInbox</parameter>
<parameter name="transport.mail.MoveAfterProcess">Inbox/Processed</parameter>
<parameter name="mail.imap.fetchsize">2</parameter>
<parameter name="mail.imap.socketFactory.fallback">false</parameter>
<parameter name="transport.mail.Protocol">imap</parameter>
<parameter name="mail.imap.password">abc123!</parameter>
</proxy>
答案 1 :(得分:0)
我在这里看到一些问题
你有一只手
<parameter name="transport.mail.ActionAfterFailure">DELETE</parameter>
<parameter name="transport.mail.ActionAfterProcess">DELETE</parameter>
另一方面,您尝试在处理或失败后移动到文件夹
<parameter name="transport.mail.MoveAfterFailure">Inbox/Failed</parameter>
<parameter name="transport.mail.MoveAfterProcess">Inbox/Processed</parameter>
因此,您应该删除所有这四行(默认行为是“REMOVE”)或更改为
<parameter name="transport.mail.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.mail.ActionAfterProcess">MOVE</parameter>
为了移动已处理的文件
获取大小对我来说听起来很小,你能不能尝试更高的值,比如
<parameter name="mail.imap.fetchsize">1024</parameter>
然后我假设存在Inbox / TestInbox并且您成功连接到邮箱。您确定消息内容类型是application / xml(例如,您可以简单地使用普通/文本)。 你也可以尝试
<property name="senderAddress" expression="get-property('transport', 'From')"/>
<log level="custom">
<property name="Sender Address" expression="get-property('senderAddress')"/>
</log>
查看您是否可以获取发件人地址。