wso2 esb 5.0.0中的电子邮件接收器代理无法正常工作

时间:2017-03-21 23:55:54

标签: wso2 wso2esb

我在WSO2-ESB5.0中创建了电子邮件接收器代理,代理连接到电子邮箱,我在日志中看到文本“处理消息#:1在同一个线程中”。

但是代理正文中没有任何内容被打印出来,我希望代理应该阅读电子邮件正文并传递给代理的序列。

当我将属性ActionAfterProcess设置为MOVE / DELETE时,电子邮件也没有被移动或删除。

2 个答案:

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

查看您是否可以获取发件人地址。