grails应用程序中的电子邮件获取插件

grails应用程序中的电子邮件获取插件,grails,grails-plugin,grails-2.0,Grails,Grails Plugin,Grails 2.0,我正在使用Grails2.x。我正在寻找一个插件或任何版本。我需要涵盖从电子邮件提供商(如gmail等)获取电子邮件的功能。 取回邮件后,如果我知道发件人的电子邮件地址,我会查看我的数据库。如果是,我将电子邮件保存在数据库中。如果没有,请跳过此消息 到目前为止,我只发现了用于发送电子邮件的插件,而不是用于获取电子邮件的插件 是否有任何代码(插件或纯java代码)可以用于此请求?可能没有邮件读取插件(至少我找不到)。因此,我建议直接使用JavaMail API。可以看到访问POP3邮箱的示例 文档

我正在使用Grails2.x。我正在寻找一个插件或任何版本。我需要涵盖从电子邮件提供商(如gmail等)获取电子邮件的功能。 取回邮件后,如果我知道发件人的电子邮件地址,我会查看我的数据库。如果是,我将电子邮件保存在数据库中。如果没有,请跳过此消息

到目前为止,我只发现了用于发送电子邮件的插件,而不是用于获取电子邮件的插件


是否有任何代码(插件或纯java代码)可以用于此请求?

可能没有邮件读取插件(至少我找不到)。因此,我建议直接使用JavaMail API。可以看到访问POP3邮箱的示例


文档已找到。

没有可用的插件,但使用非常简单。下面是一个从POP3服务器的收件箱中提取邮件的快速示例:

import javax.mail.*
import javax.mail.internet.*

String popHost = "mail.wherever.com"
String popUsername ="someone@wherever.com"
String popPassword = "password123"

Properties properties = new Properties()

properties.put("mail.pop3.host", popHost)
properties.put("mail.pop3.port", "995")
properties.put("mail.pop3.starttls.enable", "true")
Session emailSession = Session.getDefaultInstance(properties)

// create the POP3 store object and connect with the pop server
Store store = emailSession.getStore("pop3s")
store.connect(popHost, popUsername, popPassword)

// create the folder object and open it
Folder emailFolder = store.getFolder("INBOX")
emailFolder.open(Folder.READ_WRITE)

// retrieve the messages from the folder in an array
Message[] messages = emailFolder.getMessages()
log.debug("${messages.length} messages found to process")

messages.each { message ->
    log.debug("Processing e-mail message")
    log.debug("Subject: " + message.getSubject())
    log.debug("From: " + message.getFrom()[0])
}
这只是一个简单的例子,可能包含打字错误之类的,因为我是从头顶上写下来的。假设您正在使用Groovy并在Grails服务中


注意:此示例假定使用SSL和995端口。这对于gmail这样的提供商是正确的,但不是所有的。

使用与本例相同的代码注释?哇,现在这是可怕的,它几乎是相同的。o、 我想我知道我从哪里得到的另一个片段(我从哪里得到的,SpringBatch作业)。想把这个例子复制到你的答案中,我会删除我的吗?