2

所以我需要使用 ColdFusion 8 来检查一个 GMail 帐户的电子邮件,最终我会下载附件。除了以下代码之外,我已经用 Google 搜索并没有找到太多。让我烦恼的是,这就是我所发现的。

那么这是最好的方法吗?

这是代码。我已经包含了链接,但没有更多信息。

<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">

使用 CFPOP 检查 GMail 上的邮件

4

3 回答 3

3

您是否有理由特别需要使用 POP?如果您使用的是 CF9,那么您可以使用应该与 gmail 一起使用的 CFIMAP 。文档甚至以 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>
于 2012-07-10T14:36:03.717 回答
2

这将起作用,但您应该知道它为 POP3 设置了 GLOBAL SSL socketfactory。我相信这将对整个服务器产生影响——这可能与您的流程无关,但值得注意。

于 2012-07-10T14:38:16.157 回答
1

你可以使用 Riaforge 上的开源 cfgmail 项目:

http://cfgmail.riaforge.org/

它适用于 CF 7 及更高版本。

于 2012-07-10T15:16:44.077 回答