我正在尝试设置与 Office365 邮箱的连接。此函数基于 java 示例(请参阅 https://stackoverflow.com/a/28689722/2482184 )。我快完成了,但我不知道如何转换原始 java 示例中的以下代码行:
Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
完整功能如下:
<cfscript>
mailSettings = {};
mailSettings.server = "outlook.office365.com";
mailSettings.port = "993";
mailSettings.username = "xxxx";
mailSettings.password = "xxxx";
mailSettings.action = "";
mailSettings.folder = "INBOX";
mailSettings.timeout = 5000;
properties = createObject("Java","java.util.Properties");
jsession = createObject("Java","javax.mail.Session");
store = createObject("Java","javax.mail.Store");
message = CreateObject("Java", "javax.mail.Message");
properties.init();
properties.put("mail.store.protocol","imap");
properties.put("mail.from", mailSettings.username);
properties.put("mail.imap.port", mailSettings.port);
properties.put("mail.imap.connectiontimeout",mailSettings.timeout);
properties.put("mail.imap.timeout",mailSettings.timeout);
jsession = jsession.getInstance(properties);
store = jsession.getStore("imaps");
store.connect(mailSettings.server, mailSettings.username, mailSettings.password);
inbox = store.getFolder("#mailSettings.folder#");
inbox.open( inbox.READ_ONLY );
/**********
NEED HELP TO CONVERT THIS LINE BELOW TO COLDFUSION SYNTAX
---------
Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
---------
END NEED HELP
**********/
inbox.close(true);
</cfscript>
我知道有一个 cfimap 标签。我正在尝试寻找一种更快的方法来下载电子邮件。
最佳答案
获取 Flag.SEEN
的引用
Flags.Flag
- This inner class represents an individual system flag.
然后用它来构建其他对象(Flags 和 FlagTerm):
Flag = createObject("java", "javax.mail.Flags$Flag");
Seen = createObject("java", "javax.mail.Flags").init(Flag.SEEN);
Term = createObject("java", "javax.mail.search.FlagTerm").init(Seen, false);
// do search ...
messages = inbox.search(Term);
关于coldfusion - 将java代码转换为coldfusion代码(CFIMAP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48770219/