2012-07-10 111 views
2

所以我需要使用ColdFusion来检查邮件的GMail帐户,最终我会下载附件。我谷歌搜索,除了下面的代码没有找到多少。什么错误的是,这是我找到的。使用cfpop访问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="[email protected]" password="yourpassword"> 

Using CFPOP to check mail on GMail

+0

感谢大家的回复。我选择了这种方法,即使用POP。虽然其他解答方法很好。使用POP很简单,除了从电子邮件中获取附件外,我不需要做任何事情。 – 2012-07-23 09:44:52

回答

2

这会工作,但你应该知道,它为POP3的SSL GLOBAL的SocketFactory。我相信这会对整个服务器产生影响 - 这可能与您的流程无关,但值得注意。

+0

啊,这可能是一个问题。我相信服务器上还有其他的东西使用POP3。我想这个问题很难诊断。 – 2012-07-10 14:47:24

+0

是的:)你目前的做法是使用java.lang.System设置系统范围的属性。您可能会使用纯java实现,该实现不会设置系统属性,而是根据请求实现套接字工厂 - 但我没有任何示例。我会先尝试barnyr的方法 - 看看Imap是否给你你想要的东西? – 2012-07-10 14:51:24

+0

是的,也许这是一个更好的方法。无论如何非常感谢。 – 2012-07-10 15:07:33

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","[email protected]", "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> 
+0

刚刚检查(忘记我可以通过倾销SERVER变量来检查)。我们目前正在运行CF 8.有一个升​​级计划,但没有一段时间。所以我被困在8这个解决方案。 – 2012-07-10 15:10:56

+0

您可以直接进入Java并查看是否可以使用JavaMail IMAP连接,但正如Mark所指出的,这也正在改变全局设置。这里有一个很好的简短例子,它应该快速转换为CF:http://harikrishnan83.wordpress.com/2009/01/24/access-gmail-with-imap-using-java-mail-api/ – barnyr 2012-07-10 15:41:38

+0

其实,读过我刚刚发布的示例链接,它仅使用全局系统属性对象作为获取属性对象的便捷方式。你可能可以实例化你自己的属性对象,并用必要的连接细节填充它。 – barnyr 2012-07-10 16:23:17