WSO2 ESB MailTransportListener 未收到
WSO2 ESB MailTransportListener not receiving
我刚刚安装了全新的 WSO2 ESB 4.9.0。这是我昨天下载的最新版本。
我正在尝试让我的 ESB 接收来自服务器的电子邮件。我试过 POP3 和 IMAP。我一直在使用一些参考资料来帮助我(因为我是新成员,我的声誉还不允许我 post 正确链接到我的所有参考资料):
- 计算器。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
当然还有官方文档:
- https://docs.wso2.com/display/ESB481/MailTo+Transport
- https://docs.wso2.com/display/AS501/Using+Mail+transport+to+Invoke+Web+Services
我所有的阅读让我相信我已经正确设置了所有内容(或者如果不正确,足以收到一些错误消息以进行故障排除)。
我确实重启了 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 至少尝试检索电子邮件的其他内容?困扰我的是我没有收到任何错误消息来进行故障排除(例如我的邮件未进行普通测试)。
我用 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>
此外,如果您需要进一步调试它,您可以启用 DEBUG 日志。为此,将以下行添加到 repository/conf/log4j.properties 并重新启动。
log4j.logger.org.apache.axis2.transport.mail.MailTransportListener=DEBUG
我刚刚安装了全新的 WSO2 ESB 4.9.0。这是我昨天下载的最新版本。
我正在尝试让我的 ESB 接收来自服务器的电子邮件。我试过 POP3 和 IMAP。我一直在使用一些参考资料来帮助我(因为我是新成员,我的声誉还不允许我 post 正确链接到我的所有参考资料):
- 计算器。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
当然还有官方文档:
- https://docs.wso2.com/display/ESB481/MailTo+Transport
- https://docs.wso2.com/display/AS501/Using+Mail+transport+to+Invoke+Web+Services
我所有的阅读让我相信我已经正确设置了所有内容(或者如果不正确,足以收到一些错误消息以进行故障排除)。
我确实重启了 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 至少尝试检索电子邮件的其他内容?困扰我的是我没有收到任何错误消息来进行故障排除(例如我的邮件未进行普通测试)。
我用 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>
此外,如果您需要进一步调试它,您可以启用 DEBUG 日志。为此,将以下行添加到 repository/conf/log4j.properties 并重新启动。
log4j.logger.org.apache.axis2.transport.mail.MailTransportListener=DEBUG