gpt4 book ai didi

email - Moqui-通过SSL连接连接到IMAP服务器吗?

转载 作者:太空宇宙 更新时间:2023-11-03 14:52:15 26 4
gpt4 key购买 nike

我正在尝试在Moqui 1.5.4中轮询电子邮件服务器。我正在从“工具”应用程序中使用org.moqui.impl.EmailServices.poll#EmailServer。

电子邮件服务器设置如下:

<moqui.basic.email.EmailServer emailServerId="testEmail" mailUsername="test.account@xxxxxxx.ie" mailPassword="xxxxxxxx" smtpHost="" smtpPort="" smtpSsl="" storeHost="Webmail8.xxxxxxxxxxx.ie" storePort="993" storeProtocol="imap" storeDelete="N" />


所有条目,密码均已在Outlook上进行了测试,并且没有问题连接到服务器。

我得到一个javax.mail.AuthenticationFailedException。

附加信息:

在初始测试中,我收到以下错误消息,因此我从代码中的指定行中删除了“ static”修饰符。 (我不确定这是一个问题还是我做错了。)

--- 98330    [ndlerThread[15]] WARN moqui.impl.context.TransactionFacadeImpl                                                     
Transaction rollback. The rollback was originally caused by: startup failed:
classpath_//org/moqui/impl/pollEmailServer_groovy: 28: Modifier 'static' not allowed here.
@ line 28, column 1.
final static Logger logger = LoggerFactory.getLogger("org.moqui.impl.pollEmailServer")


我尝试查看是否可以解决问题的一些方法包括:


设置storeProtocol =“ imaps”
包括EmailServer条目中的smtp详细信息(请注意,我只需要轮询,而无需发送邮件)。
将以下行添加到pollEmailServer.groovy(已查看com.sun.mail.imap程序包)。

sessionProperties.put("mail.imap.ssl.enable", true)


完全身份验证失败的错误消息是:

运行服务[org.moqui.impl.EmailServices.poll#EmailServer]时出错(可抛出)
javax.mail.AuthenticationFailedException
        在javax.mail.Service.connect(Service.java:306)
        在javax.mail.Service.connect(Service.java:156)
        在javax.mail.Service.connect(Service.java:105)
        在pollEmailServer_groovy.run(pollEmailServer_groovy:47)
        在org.moqui.impl.context.runner.GroovyScriptRunner.run(GroovyScriptRunner.groovy:50)
        在org.moqui.impl.context.ResourceFacadeImpl.script(ResourceFacadeImpl.groovy:337)
        在org.moqui.impl.service.runner.ScriptServiceRunner.runService(ScriptServiceRunner.groovy:49)
        在org.moqui.impl.service.ServiceCallSyncImpl.callSingle(ServiceCallSyncImpl.groovy:260)
        在org.moqui.impl.service.ServiceCallSyncImpl.call(ServiceCallSyncImpl.groovy:137)
        在ServiceRun_xml_transition_run_actions.run(ServiceRun_xml_transition_run_actions:10)
        在org.moqui.impl.actions.XmlAction.run(XmlAction.groovy:99)
        在org.moqui.impl.screen.ScreenDefinition $ TransitionItem.run(ScreenDefinition.groovy:659)
        在org.moqui.impl.screen.ScreenRenderImpl.recursiveRunTransition(ScreenRenderImpl.groovy:223)
        在org.moqui.impl.screen.ScreenRenderImpl.recursiveRunTransition(ScreenRenderImpl.groovy:217)
        在org.moqui.impl.screen.ScreenRenderImpl.recursiveRunTransition(ScreenRenderImpl.groovy:217)
        在org.moqui.impl.screen.ScreenRenderImpl.recursiveRunTransition(ScreenRenderImpl.groovy:217)
        在org.moqui.impl.screen.ScreenRenderImpl.recursiveRunTransition(ScreenRenderImpl.groovy:217)
        在org.moqui.impl.screen.ScreenRenderImpl.internalRender(ScreenRenderImpl.groovy:301)
        在org.moqui.impl.screen.ScreenRenderImpl.render(ScreenRenderImpl.groovy:164)
        在org.moqui.impl.webapp.MoquiServlet.doScreenRequest(MoquiServlet.groovy:71)
        在org.moqui.impl.webapp.MoquiServlet.doPost(MoquiServlet.groovy:37)
        在javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
        在javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        在net.winstone.core.ServletCotion.execute(ServletConfiguration.java:270)
        在net.winstone.core.SimpleRequestDispatcher.forward(SimpleRequestDispatcher.java:290)
        在net.winstone.core.listener.RequestHandlerThread.processRequest(RequestHandlerThread.java:212)
        在net.winstone.core.listener.RequestHandlerThread.run(RequestHandlerThread.java:143)
        在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)
        在java.util.concurrent.FutureTask.run(FutureTask.java:266)
        在net.winstone.util.BoundedExecutorService $ 1.run(BoundedExecutorService.java:81)
        在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
        在java.lang.Thread.run(Thread.java:745)



附录:处理使用电子邮件ECA规则轮询的邮件。

当我在EmailEcaRule.groovy中打开记录器信息时,可以看到我的电子邮件ECA中的条件不断评估为“假”。但这不应该吗?

======== EMECA Process Received Email conditionPassed? false My condition: TestEmail fields: 


(请注意,我在记录器信息中插入了“我的条件:$ {fields.subject}”,以再次检查条件表达式是否正确。)

我的表情是:

<emecas xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/email-eca-1.5.xsd">
<emeca rule-name="Process Received Email">
<condition><expression>fields.subject == 'TestEmail'</expression></condition>
<actions>
<service-call name="org.moqui.impl.EmailServices.save#EcaEmailMessage" />
</actions>
</emeca>
</emecas>


我已经测试并重新测试了。我不知道为什么它评估为假。请让我知道是否需要任何其他信息。



解决这个问题仍然没有运气。我一定在做蠢事。我注释掉了EmailEcaRule.groovy中的if(conditionPassed){}来绕过我在Email ECA规则中的条件,只是运行操作,但是现在它陷入了“无法在空对象上调用方法get()”的错误中org.moqui.impl.EmailServices.save#EcaEmailMessage,大概在headers.get('message-id')上。但是我可以在日志信息中看到消息ID位于标头信息中,并成功转换为小写。

最佳答案

这有一些问题。首先是Moqui使用的是JavaMail的旧版本(现已更新为1.5.4)。另一个是密码的传递方式,更普遍的说,poll#EmailServer服务的脚本使用JavaMail API的方式还有很多改进的余地。

从提交#bf0f872开始,有各种更改。我能够使用storeProtocol = imaps,storePort = 993等成功连接。

回答您的问题:如果不更改这些代码,我认为无法通过SSL进行连接。换句话说,这最终更多地是错误报告而不是问题。

关于email - Moqui-通过SSL连接连接到IMAP服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com