我正在寻找一种以纯文本格式接收电子邮件并将其解析为更好的内容以在 Clojure 项目中使用的方法。生成的数据结构应该允许我快速获取发件人、主题、正文和附件。
有一个与此类似的问题,但在 Java 中:
我发现的大多数库只支持电子邮件发送,不一定支持解析。
我正在寻找一种以纯文本格式接收电子邮件并将其解析为更好的内容以在 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)))