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

Plugin for email fetching in a grails application

我正在使用 grails 2.x。我正在寻找插件或任何建议。我需要涵盖从电子邮件提供商(例如 gmail 等)获取电子邮件的功能。 获取邮件后,如果我知道发件人的电子邮件地址,我会查看我的数据库。如果是,我将电子邮件保存在我的数据库中。如果没有请跳过留言。

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

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

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

文档位于 here

没有任何插件可用,但使用 JavaMail 非常简单。这是从 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 等提供商,但并非全部。