2010-11-07 75 views
2

我正在研究一個Cocoa應用程序,我想讓郵件被刪除。如何在Cocoa應用程序中丟棄郵件數據?

如果我包括我的Info.plist文件類型public.plain-text,我可以在Dock中的圖標拖放郵件消息,並從application:openFiles:委託方法得到這樣一個文件路徑:

"/Users/smokris/Library/Caches/TemporaryItems/Re_ multiplexer question 3.eml" 

.. 。我可以從這個文件中讀取原始的消息數據。到現在爲止還挺好。

但是,我也希望用戶能夠在應用程序窗口上放置郵件消息。所以我這樣做:

[window registerForDraggedTypes:[NSArray arrayWithObjects:(NSString *)kPasteboardTypeFileURLPromise,nil]]; 

...在performDragOperation:,我得到這樣一個URL從剪貼板:

message:%[email protected]%3E 

如果我嘗試做這個網址的NSURLRequest,它給我的錯誤「不支持的URL」。

如何從此message: URL獲取原始消息數據?

回答

1

我試過了與(從http://developer.apple.com/library/mac/#samplecode/PasteboardPeeker/Introduction/Intro.html)蘋果PasteboardPeeper示例代碼,並拖動一條消息到主確實顯示該消息的路徑可供選擇:

PasteboardRef: 1395632 ItemCount: 1 
    Index: 1 item ID: 789514 
     "dyn.ah62d4rv4gu8y4zvanr41xxxxx30n25wqz4ca5pfsr30c35feb4he2pssrxgn6vasbu1g7dfqm1" 
     "MV Super-secret message transfer pasteboard type" 
     '' ______ 82 /Users/guest/Library/Mail/[email protected]@imap.gmail.com/INBOX.imapmb 

     "dyn.ah62d4rv4gu8zg7puqz3c465fqr3gn7bakf41k55rqf4g86vasbu1g7dfqm10c6xeeb4hw6df" 
     "Super-secret Automator pasteboard type" 
     '' ______ 454 <?xml version= 1.0 encoding= UTF-8 ?> < DOCTYPE plist PUBLIC -//Apple//DTD PLI 

     "dyn.ah62d4rv4gu8yc6durvwwa3xmrvw1gkdusm1044pxqyuha2pxsvw0e55bsmwca7d3sbwu" 
     "Apple files promise pasteboard type" 
     '' ______ 212 <?xml version= 1.0 encoding= UTF-8 ?> < DOCTYPE plist PUBLIC -//Apple//DTD PLI 

     "public.url" 
     "" 
     'url ' ______ 74 message: [email protected] 3E 

     "public.url-name" 
     "" 
     'urln' ______ 56 A friend thought you would be interested in this station 

     "com.apple.pasteboard.promised-file-content-type" 
     "" 
     '' ______ 23 dyn.ah6xxxqmxhk2x43prru 

     "com.apple.pasteboard.promised-file-url" 
     "" 
     '' ______ 0 

     "dyn.ah62d4rv4gu8y6y4usm10xxxxqzb085xyqz1hk64uqm10c6xenv61a3k" 
     "NSPromiseContentsPboardType" 
     '' ______ 0 

     "dyn.ah62d4rv4gk81a4dgsq" 
     "" 
     'phfs' PT____ 14 ???????? Pssf 

我不知道什麼是「 MV超級祕密信息傳遞粘貼板類型「,但您可能不想將其作爲關鍵名稱;相反,也許你可以遍歷所有的鍵,看看它們中的任何一個看起來像文件路徑。

P.S.這也可能是有趣的:http://www.wuffwuffware.com/developer.html

+0

謝謝。我確實遍歷了所有'[pboard types]'列出它們的內容,但是除了'message:'url之外,沒有找到多少東西,包含消息的郵箱的文件路徑(但是沒有鏈接到消息本身)和消息的主題行。 – smokris 2010-11-07 14:57:17

+1

哦,wuffwuffware示例使用AppleScript來獲取消息正文。不理想(AppleScript是緩慢和繁瑣的),但總比沒有好。再次感謝。 – smokris 2010-11-07 16:24:09

+0

對此有何好運?我試圖做同樣的事情,雖然我可以在Dock上放置鏈接到.eml文件,但我似乎無法在NSTextView頂部拖放它 – strange 2013-11-06 17:10:10