Java Groovy Imap访问

Java Groovy Imap访问,java,groovy,jakarta-mail,Java,Groovy,Jakarta Mail,我有以下代码 import javax.mail.* def host = "imap.gmail.com" def port = "993" def username = "username@gmail.com" def password = "password" Properties props = new Properties() props.setProperty("mail.store.protocol", "imap") props.setProperty("mail.imap.

我有以下代码

import javax.mail.*

def host = "imap.gmail.com"
def port = "993"
def username = "username@gmail.com"
def password = "password"

Properties props = new Properties()
props.setProperty("mail.store.protocol", "imap")
props.setProperty("mail.imap.host", host)
props.setProperty("mail.imap.port", port)
def session = Session.getDefaultInstance(props, null)
def store = session.getStore("imap")

store.connect(host, username, password)
def folder = store.getFolder("INBOX")
folder.open(Folder.READ_WRITE)
folder.messages.each { msg ->
    println msg.subject
}

但当我运行这个脚本时,它只是在编译后挂起。我做错了什么?

对于gmail,我们必须强制实施SSL。要做到这一点,我只是补充说

props.setProperty("mail.imap.ssl.enable", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.imap.socketFactory.fallback", "false");
这就解决了问题

编辑:

更好的解决方案是:

props.setProperty("mail.imap.ssl.enable", "true");
感谢@Bill Shannon指出这一点。

将属性“mail.imap.ssl.enable”设置为“true”。