我是Mule的新手,我正在尝试创建一个Mule配置,通过imap从GMail帐户中提取已发送的电子邮件,并将它们推送到php脚本,该脚本处理并将它们存储在我构建的自定义CRM中。 对于初学者来说,我只是想将收件箱电子邮件转储到文本文件中,我打算从那里开始工作。
当邮箱收到新邮件时,Mule应该收到新邮件并自动处理。
到目前为止,Mule配置看起来像这样:
<imaps:connector name="IMAP" mailboxFolder="INBOX" validateConnections="false" doc:name="IMAP" />
<flow name="flows1Flow1" doc:name="flows1Flow1">
<imaps:inbound-endpoint host="imap.gmail.com" port="993" user="[[username]]%40gmail.com" password="[[password]]" connector-ref="IMAP" doc:name="IMAP"/>
<file:outbound-endpoint path="D:\mailflow" outputPattern="msg_#[function:date].txt" doc:name="File"/>
</flow>
程序运行并达到这一点:
INFO 2012-01-12 13:51:06,606 [main] org.mule.DefaultMuleContext:
**********************************************************************
* Application: mailflow *
* OS encoding: Cp1252, Mule encoding: UTF-8 *
* *
* Agents Running: *
* JMX Agent *
**********************************************************************
INFO 2012-01-12 13:51:06,606 [main] org.mule.module.launcher.DeploymentService:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Started app 'mailflow' +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
然后只是无限期地坐在那里,什么都不做?!
有文档建议,因为我正在使用IMAPS,我需要将一个TLS客户端和TLS密钥库添加到imaps连接器。我不确定这些是什么或如何使用它们,文档是高度专业化和难以理解的。 我也不确定问题出在首位,因为应用程序在任何时候都不会崩溃。
有没有人成功创建了一个使用GMail的imap流程? 请帮忙?!
答案 0 :(得分:1)
只需创建如下连接器:
<imaps:connector name="IMAP">
<imaps:tls-client/>
<imaps:tls-trust-store/>
</imaps:connector>
这应该可以解决问题。 另外,我删除了&#34; @ gmail&#34;根据用户的定义,因为没有必要。
再见!
德国
答案 1 :(得分:1)
只需输入一个*,你就不会看到错误,并且仍能正常工作。
<imaps:tls-client path="*" storePassword="*"/>
<imaps:tls-trust-store path="*" storePassword="*"/>
答案 2 :(得分:0)
您必须将imap:connector
和imap:inbound-endpoint
更改为imaps:connector
和imaps:inbound-endpoint
。
这对我来说很好。我发布了同样的内容,现在通过这个小小的改动来修复它。
答案 3 :(得分:0)
仅将未删除和未读的消息作为消息分派(RetrieveMessageReceiver.java:148和149)
if (!messages[i].getFlags().contains(Flags.Flag.DELETED)
&& !messages[i].getFlags().contains(Flags.Flag.SEEN))
如果文件夹很大,则需要一些时间(甚至可能是数小时)来处理未读消息。
答案 4 :(得分:0)
使用应用密码 https://security.google.com/settings/security/apppasswords 最后使用正确的路径保存邮件。