我在riemann使用电子邮件提醒。我已经对:subject
和`:body'的值进行了解码。我在这方面遇到了一些问题。我粘贴了我的riemann代码和我在下面得到的错误。我不知道如何解决这个问题。
(let [email (mailer {:host "smtp.gmail.com"
:port 25
:user "user"
:pass "password"
:auth "true"
:subject "Welcome All to Coding"
:body "Hello Team, \n Welcome to my coding \n Thank You!"
:from "mygmail@gmail.com"})])
我收到以下错误
WARN [2015-07-25 02:10:17,640] defaultEventExecutorGroup-2-2 - riemann.config -
riemann.email$mailer$make_stream__7892$stream__7893@62aa5 threw
java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IF
n
at riemann.email$email_event.invoke(email.clj:15)
at riemann.email$mailer$make_stream__7892$stream__7893.invoke(email.clj:
69)
at riemann.config$eval96$stream__101$fn__106.invoke(riemann_v1.con
fig:39)
at riemann.config$eval96$stream__101.invoke(riemann_v1.config:39)
at riemann.streams$smap$stream__3695$fn__3706.invoke(streams.clj:163)
at riemann.streams$smap$stream__3695.invoke(streams.clj:163)
at riemann.streams$fixed_time_window_fn$stream__3946$fn__3979.invoke(str
eams.clj:381)
at riemann.streams$fixed_time_window_fn$stream__3946.invoke(streams.clj:
381)
at riemann.config$eval96$stream__145$fn__150.invoke(riemann_v1.con
fig:27)
at riemann.config$eval96$stream__145.invoke(riemann_v1.config:27)
at riemann.core$stream_BANG_$fn__5678.invoke(core.clj:19)
at riemann.core$stream_BANG_.invoke(core.clj:18)
at riemann.transport$handle.invoke(transport.clj:159)
at riemann.transport.tcp$tcp_handler.invoke(tcp.clj:93)
at riemann.transport.tcp$gen_tcp_handler$fn__5904.invoke(tcp.clj:65)
at riemann.transport.tcp.proxy$io.netty.channel.ChannelInboundHandlerAda
pter$ff19274a.channelRead(Unknown Source)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(Abst
ractChannelHandlerContext.java:333)
at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractCha
nnelHandlerContext.java:32)
at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelH
andlerContext.java:324)
at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecuto
r.java:36)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThread
EventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorato
r.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
当我评论:subject
和:body
时。我没有收到错误。
提前致谢
答案 0 :(得分:2)
您必须提供主题和正文的功能,而不仅仅是字符串。来自the docs
默认情况下,riemann使用
(subject events)
和(body events)
来格式化电子邮件。 您可以通过包含来设置自己的主题或主体格式化程序功能 msg-opts中的:subject
或:body
。这些格式化函数需要一系列 事件并返回一个字符串。(def email (mailer {} {:body (fn [events] (apply prn-str events))}))
所以只需要一个可以使用的常量字符串:
(fn [events] "Your Subject Text")