我正在使用grails 2.x.我正在寻找插件或任何重新推荐。我需要介绍从电子邮件提供商处获取电子邮件的功能(例如gmail,...)。 获取邮件后,如果我知道发件人的电子邮件地址,我会查看我的数据库。如果是,我将电子邮件保存在我的数据库中。如果没有,请跳过该消息。
到目前为止,我只发现用于发送电子邮件的插件,但不是用于提取电子邮件。
我可以为此请求重用任何代码(插件或纯Java代码)吗?
答案 0 :(得分:0)
答案 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等提供商,情况属实,但不是全部。