2012-07-10 108 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