                                          32 "bin_Win32"
                                          64 "bin_x64")) 24)
         javac-errs (javac-errors result-txt)
-        outdated-jars (old-jars (File. micromanager "Install_AllPlatforms") 24)]
+        outdated-jars (old-jars (File. micromanager "Install_AllPlatforms") 24)
+        installer-ok (exe-on-server? bits today-token)]
     (when-not (and (empty? vs-error-text) (empty? outdated-dlls)
-                   (empty? javac-errs) (empty? outdated-jars))
-      (println (str "\n\nMICROMANAGER " bits "-bit "
-                    ({:inc "INCREMENTAL" :full "FULL"} mode)
-                    " BUILD ERROR REPORT"))
-      (println (str "For the full build output, see " (.getAbsolutePath f)))
-      (println "\nVisual Studio reported errors:")
-      (if-not (empty? vs-error-text) (println vs-error-text) (println "None."))
-      (println "\nOutdated device adapter DLLs:")
-      (if-not (empty? outdated-dlls) (dorun (map #(println (.getName %)) outdated-dlls)) (println "None."))
-      (println "\nErrors reported by java compiler:")
-      (if-not (empty? javac-errs) (dorun (map println javac-errs)) (println "None."))
-      (println "\nOutdated jar files:")
-      (if-not (empty? outdated-jars) (dorun (map #(println (.getName %)) outdated-jars)) (println "None."))
-      )))
+                   (empty? javac-errs) (empty? outdated-jars)
+                   installer-ok)
+      (str
+        "\n\nMICROMANAGER " bits "-bit "
+          ({:inc "INCREMENTAL" :full "FULL"} mode)
+          " BUILD ERROR REPORT\n"
+        "For the full build output, see " (.getAbsolutePath f)
+        "\n\nVisual Studio reported errors:"
+        (if-not (empty? vs-error-text)
+          vs-error-text
+          "None.")
+        "\n\nOutdated device adapter DLLs:\n"
+        (if-not (empty? outdated-dlls)
+          (str-lines "\n" (map #(.getName %) outdated-dlls))
+          "None.")
+          "\n\nErrors reported by java compiler:\n"
+        (if-not (empty? javac-errs)
+          (str-lines "\n" javac-errs)
+          "None.")
+        "\n\nOutdated jar files:\n"
+        (if-not (empty? outdated-jars)
+          (str-lines "\n" (map #(.getName %) outdated-jars))
+          "None.")
+        "\n\nIs installer download available on website?\n"
+        (if installer-ok
+          "Yes"
+          "No. (build missing)\n")
+      ))))
 
 (defn make-full-report [mode send?]
   (let [report
-        (with-out-str
+        (str
           (report-build-errors 32 mode)
           (report-build-errors 64 mode))]
     (if-not (empty? report)

      (file-seq dir))
    time-limit-hours))

(defn report-build-errors [bits mode]
  (let [f (result-file bits mode)
        result-txt (slurp f)

(ns buildcheck.core
  (:import (java.io File)
           (java.text SimpleDateFormat)
           (java.util Calendar Date))
  (:use [local-file :only (file*)]
        [clj-mail.core])
  (:gen-class))
