我正在尝试使用以下代码从 Clojure 发送电子邮件:
发送电子邮件的辅助函数:
(defn- send [recipient from subject msg host content-type & attachments]
(let [att-ds (map (fn [at] {:ds (ByteArrayDataSource. (:source at)
(:type at))
:name (:name at)
:description (:description at)})
attachments)
mpmail (MultiPartEmail.)]
(doto mpmail
(.setHostName host)
(.setFrom from)
(.setSubject subject)
(.setContent msg content-type)
(.setCharset "utf-8"))
(.addTo mpmail recipient)
(doseq [ds att-ds]
(.attach mpmail (:ds ds) (:name ds) (:description ds)))
(.send mpmail)))
用法:
(send "sender@my.domain"
"recipient@my.domain"
"SUBJECT"
"MSG"
"my.smtp.server"
"text/plain"
{:source (.getBytes "Attachment")
:type "text/plain"
:name "test.txt"
:description "test"})
从 REPL(或我的应用程序)运行上述内容会导致接收者@my.domain 收到主题为“SUBJECT”和正文“MSG”但没有任何附件痕迹的电子邮件。任何地方都不会引发异常。
我已经用两个不同的 smtp 服务器试过了。
谢谢你的帮助。