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

时间:2015-07-09 13:38:00

标签: grails grails-plugin grails-2.0

我正在使用grails 2.x.我正在寻找插件或任何重新推荐。我需要介绍从电子邮件提供商处获取电子邮件的功能(例如gmail,...)。 获取邮件后,如果我知道发件人的电子邮件地址,我会查看我的数据库。如果是,我将电子邮件保存在我的数据库中。如果没有,请跳过该消息。

到目前为止,我只发现用于发送电子邮件的插件,但不是用于提取电子邮件。

我可以为此请求重用任何代码(插件或纯Java代码)吗?

2 个答案:

答案 0 :(得分:0)

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

文档位于here

答案 1 :(得分:0)

没有任何插件可用,但使用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等提供商,情况属实,但不是全部。