【问题标题】:WSO2 ESB MailTransportListener not receivingWSO2 ESB MailTransportListener 未接收
【发布时间】:2016-08-03 05:56:39
【问题描述】:

我刚刚安装了全新的 WSO2 ESB 4.9.0。这是我昨天下载的最新版本。

我正在尝试让我的 ESB 接收来自服务器的电子邮件。我试过 POP3 和 IMAP。我一直在使用几个参考来帮助我(由于我是新成员,我的声誉还不允许我发布指向我所有参考的正确链接):

  • stackoverflow.com/questions/27376833/wso2-mailto-transport-emptied-my-inbox
  • javamail.java.net/nonav/docs/api/com/sun/mail/pop3/package-summary.html
  • javamail.java.net/nonav/docs/api/com/sun/mail/imap/package-summary.html
  • sparkletechthoughts.blogspot.fr/2013/10/how-to-receive-emails-to-wso2-esb.html
  • charithaka.blogspot.com/2012/11/how-to-enable-mail-transport-for-wso2.html
  • irhamiqbal.wordpress.com/how-to-receive-email-using-wso2-esb/
  • jayalalk.blogspot.com/2014/06/wso2-esb-mail-sending-with-html-complex.html

当然还有官方文档:

我所有的阅读都让我相信我已经正确设置了所有东西(或者如果不正确,也足以让一些错误消息进行故障排除)。

我确实重新启动了 WSO2 ESB,控制台日志中显示以下消息:

TID[-1234] [ESB] [2016-08-02 21:45:37,237] INFO {org.apache.axis2.transport.mail.MailTransportListener} - MAILTO listener started 

我在日志中没有得到任何其他指示。

我编辑(并仔细检查了)我的 $CARBON_HOME/repository/conf/axis2/axis2.xml,我很确定我正确启用了邮件传输:

<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.MailTransportListener">
    <!-- configure any optional POP3/IMAP properties
    check com.sun.mail.pop3 and com.sun.mail.imap package documentation for more details-->
</transportReceiver>
<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
    <parameter name="mail.smtp.host">my.smtp.server</parameter>
    <parameter name="mail.smtp.port">587</parameter>
    <parameter name="mail.smtp.starttls.enable">false</parameter>
    <parameter name="mail.smtp.auth">true</parameter>
    <parameter name="mail.smtp.user">my@user.id</parameter>
    <parameter name="mail.smtp.password">password</parameter>
    <parameter name="mail.smtp.from">my@email.com</parameter>
</transportSender>

最后,我设置了代理服务(无论如何,在当前迭代中):

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="JasperEmailPOP3"
       transports="mailto"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="senderAddress"
                   expression="get-property('transport', 'From')"
                   scope="default"
                   type="STRING"/>
         <log level="custom">
            <property name="Date" expression="$trp:Date"/>
            <property name="Subject" expression="$trp:Subject"/>
            <property name="Content-Type" expression="$trp:Content-Type"/>
            <property name="From" expression="$trp:From"/>
         </log>
         <drop/>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </target>
   <parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
   <parameter name="transport.PollInterval">5</parameter>
   <parameter name="mail.pop3.host">my.pop3.email</parameter>
   <parameter name="mail.pop3.user">my@email.com</parameter>
   <parameter name="transport.mail.Protocol">pop3</parameter>
   <parameter name="mail.pop3.socketFactory.port">995</parameter>
   <parameter name="transport.mail.Address">jasper@eryjus.com</parameter>
   <parameter name="mail.pop3.password">password</parameter>
   <parameter name="mail.pop3.port">995</parameter>
   <parameter name="mail.pop3.socketFactory.fallback">false</parameter>
   <description/>
</proxy>

有了这一切,我的问题是:我还缺少什么让 ESB 至少尝试检索电子邮件吗?困扰我的是我没有收到任何错误消息进行故障排除(例如我的邮件没有经过普通测试)。

【问题讨论】:

  • 您是否成功解决了您的问题?我想从收到的邮件中提取附件并将​​它们放在我的本地文件系统中。我在那里找不到太多样品。你也考虑过这种情况吗?
  • 嗨,我也很感兴趣:我找不到阅读电子邮件附件的示例。此外,附件将使用 SMIME 证书进行签名。我想一旦我可以检索附件,我将不得不通过自定义 Java 中介处理证书。

标签: wso2 wso2esb mailto


【解决方案1】:

我尝试了使用 Gmail 帐户的相同方案,它对我来说很好,似乎是您的 POP 服务器中的一些错误配置。您还需要添加以下属性。

<parameter name="transport.mail.ContentType">text/plain</parameter>

请参阅下面的完整代理配置。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="JasperEmailPOP3"
       transports="mailto"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="senderAddress"
                   expression="get-property('transport', 'From')"
                   scope="default"
                   type="STRING"/>
         <log level="custom">
            <property name="Date" expression="$trp:Date"/>
            <property name="Subject" expression="$trp:Subject"/>
            <property name="Content-Type" expression="$trp:Content-Type"/>
            <property name="From" expression="$trp:From"/>
         </log>
         <drop/>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </target>
   <parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
   <parameter name="transport.PollInterval">5</parameter>
   <parameter name="mail.pop3.host">pop.gmail.com</parameter>
   <parameter name="mail.pop3.user">ycwso2test</parameter>
   <parameter name="transport.mail.Protocol">pop3</parameter>
   <parameter name="mail.pop3.socketFactory.port">995</parameter>
   <parameter name="transport.mail.Address">ycwso2test@gmail.com</parameter>
   <parameter name="mail.pop3.password">wso2qa123</parameter>
   <parameter name="mail.pop3.port">995</parameter>
   <parameter name="mail.pop3.socketFactory.fallback">false</parameter>
   <parameter name="transport.mail.ContentType">text/plain</parameter>
   <description/>
</proxy>

此外,如果您需要进一步调试,您可以启用调试日志。为此,将以下行添加到 repository/conf/log4j.properties 并重新启动。

log4j.logger.org.apache.axis2.transport.mail.MailTransportListener=DEBUG

【讨论】:

  • 谢谢!!我能够通过调试日志获得所需的信息。顺便说一句,POP 服务器设置很好。我认为我的 ISP (fatcow.com) 在端口 995 上的纯文本/文本存在问题。当我将其设置回端口 110 并注释掉 &lt;parameter name="mail.pop3.socketFactory.class"&gt;javax.net.ssl.SSLSocketFactory&lt;/parameter&gt; 行时,它开始工作。现在我可以努力让它成为我真正想要的。
  • 嗨亚当,只是一个愚蠢的问题:你需要调用代理“你自己”(通过 URL 吗?)来检索邮件还是通过部署这个代理你会得到邮件?跨度>
猜你喜欢
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多