3
我正在尋找一種以純文本形式接收電子郵件的方法,並將其解析爲適用於Clojure項目的更好的東西。由此產生的數據結構應該讓我能夠快速獲得發件人,主題,正文和附件。將電子郵件字符串解析爲Clojure中的數據結構
也有同樣的問題,這但在Java:
我發現只有支持電子郵件發送並不見得解析大多數圖書館。
我正在尋找一種以純文本形式接收電子郵件的方法,並將其解析爲適用於Clojure項目的更好的東西。由此產生的數據結構應該讓我能夠快速獲得發件人,主題,正文和附件。將電子郵件字符串解析爲Clojure中的數據結構
也有同樣的問題,這但在Java:
我發現只有支持電子郵件發送並不見得解析大多數圖書館。
由於沒有人回答,也許我應該。這裏是加載電子郵件文件並打印出from
字段(第一個地址)的非常簡單的示例。
(ns something.views.welcome
(:use [noir.core :only [defpage]]
[clojure.contrib.java-utils]
[clojure.java.io :only [input-stream]])
(:import
(javax.mail Session)
(javax.mail.internet MimeMessage)
))
(def session
(Session/getDefaultInstance
(as-properties [["mail.store.protocol" "imaps"]])))
(def email "email.txt")
(defn get-message [filename]
(bean (MimeMessage. session (input-stream filename))))
(defn get-from [message]
(.toString (first (:from message))))
(println (get-from (get-message email)))
使用javax.mail,http://stackoverflow.com/questions/3444660/java-email-message-parser是答案。 –
你能給我一個如何在正確答案中做到這一點的例子嗎? –
如果你已經有了一個如何用Java實現的例子,我的第一個直覺就是使用Java interop來解析,然後'clojure.core/bean'把它變成一個Clojure結構。 – Alex