ssl - Mule ESB 3.3 - 接收 IMAPS 邮件 (Gmail)

标签 ssl gmail imap esb mule

有人有从 Gmail 中通过 SSL (IMAPS) 读取来自 IMAP 的邮件的工作示例吗?

我收集到的一些信息,但没有成功:

那东西只是坐在那里什么都不做。

这是我的流程:

<mule>
<imaps:connector
        name="imapsConnector"
        checkFrequency="5000"
        backupEnabled="true"
        mailboxFolder="INBOX"
        deleteReadMessages="false"
        doc:name="IMAP">
        <imaps:tls-client />
        <imaps:tls-trust-store />
    </imaps:connector>

    <expression-transformer
        name="returnAttachments"
        doc:name="Expression">
        <return-argument
            evaluator="attachments-list"
            expression="*.csv" />
    </expression-transformer>

    <flow
        name="GmailImapsFetch"
        doc:name="Flow1_IMAP_fetch">
        <imaps:inbound-endpoint
            user="your_username%40gmail.com"
            password="your_password"
            host="imap.googlemail.com"
            port="993"
            transformer-refs="returnAttachments"
            disableTransportTransformer="true"
            doc:name="IMAP"
            connector-ref="imapsConnector"
            responseTimeout="10000" />
        <!-- <collection-splitter doc:name="Collection Splitter" /> -->
        <logger message="#[payload]" />
        <file:outbound-endpoint
            path="/tmp/gmail-#[function:datestamp].dat"
            doc:name="File">
            <expression-transformer>
                <return-argument
                    expression="payload.inputStream"
                    evaluator="groovy" />
            </expression-transformer>
        </file:outbound-endpoint>

    </flow>
</mule>

Mule Studio (1.3.2) 提示 XML 格式错误(它不喜欢表达式转换器的东西),但它不会在运行时提示。

有人在运行这个吗?

谢谢。

--

日志:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Starting app 'mulelab'                                   +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[23-01-13 11:07:01] [DEBUG] Applying lifecycle phase: org.mule.lifecycle.phases.MuleContextStartPhase@14b03ea for registry: DefaultRegistryBroker
[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: org.mule.util.queue.TransactionalQueueManager@63edf84f
[23-01-13 11:07:01] [ INFO] Starting ResourceManager
[23-01-13 11:07:01] [DEBUG] Restore retrieved 0 objects
[23-01-13 11:07:01] [DEBUG] Restore retrieved 0 objects
[23-01-13 11:07:01] [DEBUG] Restore retrieved 0 objects
[23-01-13 11:07:01] [ INFO] Started ResourceManager
[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: FileConnector
. . .   
[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: ImapsConnector
{
  name=imapsConnector
  lifecycle=initialise
  this=4bb4df9c
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=false
  supportedProtocols=[imaps]
  serviceOverrides=<none>
}

[23-01-13 11:07:01] [DEBUG] Connecting: ImapsConnector
{
  name=imapsConnector
  lifecycle=initialise
  this=4bb4df9c
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=false
  supportedProtocols=[imaps]
  serviceOverrides=<none>
}

[23-01-13 11:07:01] [ INFO] Connected: ImapsConnector
{
  name=imapsConnector
  lifecycle=initialise
  this=4bb4df9c
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=true
  supportedProtocols=[imaps]
  serviceOverrides=<none>
}

[23-01-13 11:07:01] [ INFO] Starting: ImapsConnector
{
  name=imapsConnector
  lifecycle=initialise
  this=4bb4df9c
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=true
  supportedProtocols=[imaps]
  serviceOverrides=<none>
}

[23-01-13 11:07:01] [ INFO] Starting connector: imapsConnector
[23-01-13 11:07:01] [DEBUG] Successfully connected to ImapsConnector
{
  name=imapsConnector
  lifecycle=initialise
  this=4bb4df9c
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=false
  supportedProtocols=[imaps]
  serviceOverrides=<none>
}

[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: org.mule.transport.servlet.jetty.JettyWebappServerAgent@26945b95
[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: org.mule.module.management.agent.JmxAgent@320f6398
[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: SedaModel{_muleSystemModel}
[23-01-13 11:07:01] [ INFO] Starting model: _muleSystemModel
[23-01-13 11:07:01] [DEBUG] lifecycle phase: start for object: Flow{GmailImapsFetch}
[23-01-13 11:07:01] [ INFO] Starting flow: GmailImapsFetch
[23-01-13 11:07:01] [ INFO] Starting service: GmailImapsFetch.stage1
[23-01-13 11:07:01] [ INFO] Registering listener: GmailImapsFetch on endpointUri: imaps://your_username%40gmail.com:****@imap.googlemail.com:993
[23-01-13 11:07:01] [ INFO] Loading default inbound transformer: org.mule.transport.email.transformers.EmailMessageToString
[23-01-13 11:07:01] [DEBUG] Setting transformer name to: EmailMessageToString#1868577756
[23-01-13 11:07:01] [ INFO] Initialising: 'null'. Object is: RetrieveMessageReceiver
[23-01-13 11:07:01] [DEBUG] Connecting: RetrieveMessageReceiver{this=22fe135d, receiverKey=your_username@gmail.com, endpoint=imaps://your_username%40gmail.com:****@imap.googlemail.com:993}
[23-01-13 11:07:01] [ INFO] Connecting clusterizable message receiver
[23-01-13 11:07:01] [DEBUG] No Authenticator set on connector: imapsConnector; using default.
[23-01-13 11:07:01] [ INFO] Defaulting mule.email.imaps trust store to client Key Store
[23-01-13 11:07:01] [DEBUG] MuleSession local properties =============
[23-01-13 11:07:01] [DEBUG] mail.imaps.ssl: true
[23-01-13 11:07:01] [DEBUG] mail.debug: true
[23-01-13 11:07:01] [DEBUG] mail.imaps.socketFactory.class: org.mule.transport.email.ImapsSocketFactory
[23-01-13 11:07:01] [DEBUG] mail.imaps.socketFactory.fallback: false
[23-01-13 11:07:01] [DEBUG] mail.imap.host: imap.googlemail.com
[23-01-13 11:07:01] [DEBUG] mail.imap.auth: true
[23-01-13 11:07:01] [DEBUG] mail.imap.socketFactory.port: 993
[23-01-13 11:07:01] [DEBUG] mail.imap.rsetbeforequit: true
[23-01-13 11:07:01] [DEBUG] skipped 0
[23-01-13 11:07:01] [DEBUG] System global properties =============
[23-01-13 11:07:01] [DEBUG] mule.home: /home/pakmans/workspace/.mule
[23-01-13 11:07:01] [DEBUG] mule.encoding: UTF-8
[23-01-13 11:07:01] [DEBUG] skipped 57
[23-01-13 11:07:01] [DEBUG] Creating mail session: host = imap.googlemail.com, port = 993, user = your_username@gmail.com, pass = ********
[23-01-13 11:07:01] [DEBUG] creating: true; mule.email.imaps
[23-01-13 11:07:01] [DEBUG] creating factory
[23-01-13 11:07:01] [ INFO] Using org.mule.api.security.provider.SunSecurityProviderInfo
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.trustStore -> null
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.trustStoreType -> jks
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.trustStorePassword -> null
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.trustManagerAlgorithm -> SunX509
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.keyStore -> .keystore
[23-01-13 11:07:01] [DEBUG] Unable to load resource from the file system: /home/pakmans/workspace/mulelab/.keystore
[23-01-13 11:07:01] [DEBUG] Unable to load resource .keystore from the classpath
[23-01-13 11:07:01] [DEBUG] Normalised keyStore path to: null
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.keyStoreType -> jks
[23-01-13 11:07:01] [DEBUG] mule.email.imaps.ssl.keyStorePassword -> null
[23-01-13 11:07:01] [DEBUG] initialising: anon true
[23-01-13 11:07:01] [ INFO] Defaulting mule.email.imaps trust store to client Key Store
[23-01-13 11:07:03] [DEBUG] Connected: imaps://your_username%40gmail.com:****@imap.googlemail.com:993
[23-01-13 11:07:03] [ INFO] Starting: 'null'. Object is: RetrieveMessageReceiver
[23-01-13 11:07:03] [ INFO] Starting clusterizable message receiver
[23-01-13 11:07:03] [DEBUG] RetrieveMessageReceiver@22fe135d scheduled ScheduledThreadPoolExecutor$ScheduledFutureTask@6fa37fac with 5000 MILLISECONDS polling frequency
[23-01-13 11:07:03] [DEBUG] lifecycle phase: start for object: DefaultInboundEndpoint{endpointUri=imaps://your_username%40gmail.com:<password>@imap.googlemail.com, connector=ImapsConnector
{
  name=imapsConnector
  lifecycle=start
  this=4bb4df9c
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=true
  supportedProtocols=[imaps]
  serviceOverrides=<none>
}
,  name='endpoint.imaps.your_username.gmail.com', mep=ONE_WAY, properties={}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=true}
[23-01-13 11:07:03] [DEBUG] lifecycle phase: start for object: org.mule.DefaultMuleContext@6a9effe0
[23-01-13 11:07:03] [ INFO] Reload interval: 3000
[23-01-13 11:07:03] [DEBUG] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'wrapper-manager' is defined
[23-01-13 11:07:03] [DEBUG] registering key/object wrapper-manager/org.mule.module.management.agent.WrapperManagerAgent@4c825cf3
[23-01-13 11:07:03] [DEBUG] applying processors
[23-01-13 11:07:03] [DEBUG] applying lifecycle to object: org.mule.module.management.agent.WrapperManagerAgent@4c825cf3
[23-01-13 11:07:03] [ INFO] This JVM hasn't been launched by the wrapper, the agent will not run.
[23-01-13 11:07:03] [DEBUG] Registering statistics with name: Mule.mulelab:type=Statistics,name=AllStatistics
[23-01-13 11:07:03] [DEBUG] Registering mule with name: Mule.mulelab:name=MuleContext
[23-01-13 11:07:03] [DEBUG] Registering configuration with name: Mule.mulelab:name=Configuration
[23-01-13 11:07:03] [DEBUG] Registering model with name: Mule.mulelab:type=Model,name="_muleSystemModel(seda)"
[23-01-13 11:07:03] [DEBUG] Registering service with name: Mule.mulelab:type=Flow,name="GmailImapsFetch"
[23-01-13 11:07:03] [DEBUG] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'endpoint.imaps.your_username.gmail.com' is defined
[23-01-13 11:07:03] [ INFO] Attempting to register service with name: Mule.mulelab:type=Endpoint,service="GmailImapsFetch",connector=imapsConnector,name="endpoint.imaps.your_username.gmail.com"
[23-01-13 11:07:03] [ INFO] Registered Endpoint Service with name: Mule.mulelab:type=Endpoint,service="GmailImapsFetch",connector=imapsConnector,name="endpoint.imaps.your_username.gmail.com"
[23-01-13 11:07:03] [DEBUG] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'connector.file.mule.default.1' is defined
[23-01-13 11:07:03] [DEBUG] Attempting to register service with name: Mule.mulelab:type=Connector,name="connector.file.mule.default.1"
[23-01-13 11:07:03] [ INFO] Registered Connector Service with name Mule.mulelab:type=Connector,name="connector.file.mule.default.1"
[23-01-13 11:07:03] [DEBUG] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'imapsConnector.1' is defined
[23-01-13 11:07:03] [DEBUG] Attempting to register service with name: Mule.mulelab:type=Connector,name="imapsConnector.1"
[23-01-13 11:07:03] [ INFO] Registered Connector Service with name Mule.mulelab:type=Connector,name="imapsConnector.1"
[23-01-13 11:07:03] [DEBUG] Registering application statistics with name: Mule.mulelab:type=Application,name="application totals"
[23-01-13 11:07:03] [ INFO] 
**********************************************************************
* Application: mulelab                                               *
* OS encoding: UTF-8, Mule encoding: UTF-8                           *
*                                                                    *
* Agents Running:                                                    *
*   JMX Agent                                                        *
**********************************************************************
[23-01-13 11:07:03] [ INFO] 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Started app 'mulelab'                                    +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

最佳答案

我要冒险回答:$

根据IMAP's connector doc ,您的配置似乎缺少 GMail 推荐的属性:

moveToFolder The remote folder to move mail to once it has been read. It is recommended that 'deleteReadMessages' is set to false when this is used. This is very useful when working with public email services such as GMail where marking messages for deletion doesn't work. Instead set the @moveToFolder=[GMail]/Trash.

你能试试看吗?

(已编辑:[Gmail] 必须用方括号括起来)

关于ssl - Mule ESB 3.3 - 接收 IMAPS 邮件 (Gmail),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484298/

相关文章:

android - https在android中获取400 Bad Request的调用结果

php - fatal error - 找不到类 'League\OAuth2\Client\Provider\AbstractProvider' (phpMailer)

ruby-on-rails - Rails 转义了可以通过电子邮件客户端(Gmail、Outlook)自动链接的内容

google-app-engine - Gmail 发送配额,使用 Google App Engine 发送时

php - 为什么 php 的 imap_open() 不像 SSL?

python - 使用 pyOpenSSL 签署大文件

Apache Web 服务器负载平衡

http - 使用客户端证书身份验证的 curl

c# - 如何在 MailKit ImapClient 处于空闲状态时使用它来读取消息?

imap - javamail - store.close() 对打开的文件夹有影响吗?