所以我需要使用ColdFusion 8检查GMail帐户的电子邮件,最后我会下载附件。我用谷歌搜索,除了下面的代码,没有找到太多。让我烦恼的是,这就是我找到的全部。
这是最好的方式吗?
这是代码。我已经包含了链接,但没有更多的信息。
<cfscript>
javaSystem = createObject( "java", "java.lang.System" );
jProps = javaSystem.getProperties();
jProps.setProperty( "mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory" );
jProps.setproperty( "mail.pop3.port", 995 );
jProps.setProperty( "mail.pop3.socketFactory.port", 995 );
</cfscript>
<cfpop action="getheaderonly" name="rsEmail" startrow="1? maxrows="50" server="pop.gmail.com" port="995" username="your@username.com.au" password="yourpassword">
答案 0 :(得分:3)
您是否需要特别使用POP?如果您使用的是CF9,那么您可以使用CFIMAP,它应该与gmail一起使用。文档甚至以gmail为例。
或者,您可以直接使用javamail API:
<cfscript>
props = CreateObject("java","java.util.Properties").init();
props.setProperty("mail.store.protocol", "imaps");
sessClass = CreateObject("java","javax.mail.Session");
sess = sessClass.getDefaultInstance(props);
store = sess.getStore("imaps");
store.connect("imap.googlemail.com","you@gmail.com", "password");
folder = store.getFolder("inbox");
if(!folder.isOpen()){
folder.open(folder.READ_WRITE)
}
messageCount = folder.getMessageCount();
dump(messageCount);
if (!IsNull(folder) && folder.isOpen()) { folder.close(true); }
if (!IsNull(store)) { store.close(); }
</cfscript>
答案 1 :(得分:2)
这将有效但您应该知道它为POP3设置了GLOBAL SSL套接字。我相信这会产生服务器范围的影响 - 这可能与您的流程无关,但值得注意。
答案 2 :(得分:1)