Rebuild JS
diff --git a/webui/admin.html b/webui/admin.html
index 9c67643..53a2b1c 100644
--- a/webui/admin.html
+++ b/webui/admin.html
@@ -25,7 +25,7 @@
     <!-- Bootstrap -->
 
     <link href="css/bootstrap.min.css" rel="stylesheet" media="all">
-    <link href="css/scaffolding.css?revision=5a0f102" rel="stylesheet" media="all">
+    <link href="css/scaffolding.css?revision=f8dc8ff" rel="stylesheet" media="all">
     <link href="css/modal.css" rel="stylesheet" media="all">
     <link href="css/spinner.css" rel="stylesheet" media="all">
     <link rel="alternate" href="/api/static.lua"/>
@@ -79,9 +79,9 @@
     <script src="js/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="></script>
     <!-- Include all compiled plugins (below), or include individual files as needed -->
     <script src="js/bootstrap.min.js"></script>
-    <script src="js/config.js?revision=5a0f102"></script>
-    <script src="js/wordcloud.js?revision=5a0f102"></script>
-    <script src="js/ponymail.js?revision=5a0f102"></script>
+    <script src="js/config.js?revision=f8dc8ff"></script>
+    <script src="js/wordcloud.js?revision=f8dc8ff"></script>
+    <script src="js/ponymail.js?revision=f8dc8ff"></script>
     <div id="splash" class="splash fade-in"> &nbsp; </div>
     <div style="clear: both;"></div>
   </body>
diff --git a/webui/index.html b/webui/index.html
index c0d5ef4..b803470 100644
--- a/webui/index.html
+++ b/webui/index.html
@@ -24,7 +24,7 @@
     <!-- Bootstrap -->
     
     <link href="css/bootstrap.min.css" rel="stylesheet" media="all">
-    <link href="css/scaffolding.css?revision=5a0f102" rel="stylesheet" media="all">
+    <link href="css/scaffolding.css?revision=f8dc8ff" rel="stylesheet" media="all">
     <link href="css/modal.css" rel="stylesheet" media="all">
     <link href="css/spinner.css" rel="stylesheet" media="all">
     <link rel="alternate" href="/api/static.lua"/>
@@ -63,8 +63,8 @@
     <script src="js/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="></script>
     <!-- Include all compiled plugins (below), or include individual files as needed -->
     <script src="js/bootstrap.min.js"></script>
-    <script src="js/config.js?revision=5a0f102"></script>
-    <script src="js/ponymail.js?revision=5a0f102"></script>
+    <script src="js/config.js?revision=f8dc8ff"></script>
+    <script src="js/ponymail.js?revision=f8dc8ff"></script>
     <div id="splash" class="splash fade-in"> &nbsp; </div>
     <div style="clear: both;"></div>
     
diff --git a/webui/js/ponymail.js b/webui/js/ponymail.js
index a1e3516..6f990fc 100644
--- a/webui/js/ponymail.js
+++ b/webui/js/ponymail.js
@@ -16,7 +16,7 @@
 */
 // THIS IS AN AUTOMATICALLY COMBINED FILE. PLEASE EDIT THE source/ FILES!
 
-const PONYMAIL_REVISION = '5a0f102';
+const PONYMAIL_REVISION = 'f8dc8ff';
 
 
 /******************************************
@@ -694,8 +694,18 @@
     request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     request.send(content.join("&")); // send email as a POST string
 
-    document.getElementById('composer_modal').style.display = 'none';
-    modal("Message dispatched!", "Your email has been sent. Depending on moderation rules, it may take a while before it shows up in the archives.", "help");
+    request.onreadystatechange = function(state) {
+        if (request.readyState == 4) {
+            document.getElementById('composer_modal').style.display = 'none';
+            let response = JSON.parse(request.responseText)
+            if (response.error) {
+                modal("Message dispatch failed!", response.error, "error");
+            } else {
+                modal("Message dispatched!", "Your email has been sent. Depending on moderation rules, it may take a while before it shows up in the archives.", "help");
+            }
+        }
+    }
+
 }
 
 function compose_email(replyto, list) {
diff --git a/webui/list.html b/webui/list.html
index 8466aed..87aa518 100644
--- a/webui/list.html
+++ b/webui/list.html
@@ -24,7 +24,7 @@
     <!-- Bootstrap -->
     
     <link href="css/bootstrap.min.css" rel="stylesheet" media="all">
-    <link href="css/scaffolding.css?revision=5a0f102" rel="stylesheet" media="all">
+    <link href="css/scaffolding.css?revision=f8dc8ff" rel="stylesheet" media="all">
     <link href="css/modal.css" rel="stylesheet" media="all">
     <link href="css/spinner.css" rel="stylesheet" media="all">
     <link rel="alternate" href="/api/static.lua"/>
@@ -181,9 +181,9 @@
     </script>
     <!-- Include all compiled plugins (below), or include individual files as needed -->
     <script src="js/bootstrap.min.js"></script>
-    <script src="js/config.js?revision=5a0f102"></script>
-    <script src="js/wordcloud.js?revision=5a0f102"></script>
-    <script src="js/ponymail.js?revision=5a0f102"></script>
+    <script src="js/config.js?revision=f8dc8ff"></script>
+    <script src="js/wordcloud.js?revision=f8dc8ff"></script>
+    <script src="js/ponymail.js?revision=f8dc8ff"></script>
     <div id="splash" class="splash fade-in"> &nbsp; </div>
     <div style="clear: both;"></div>
     <script type="text/javascript">
diff --git a/webui/oauth.html b/webui/oauth.html
index ae4bb24..833682c 100644
--- a/webui/oauth.html
+++ b/webui/oauth.html
@@ -21,7 +21,7 @@
 
     <!-- CSS -->
     <link href="css/bootstrap.min.css" rel="stylesheet" media="all">
-    <link href="css/scaffolding.css?revision=5a0f102" rel="stylesheet" media="all">
+    <link href="css/scaffolding.css?revision=f8dc8ff" rel="stylesheet" media="all">
     <link href="css/modal.css" rel="stylesheet" media="all">
     <link href="css/spinner.css" rel="stylesheet" media="all">
 
@@ -54,8 +54,8 @@
     <script src="js/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="></script>
     <!-- Include all compiled plugins (below), or include individual files as needed -->
     <script src="js/bootstrap.min.js"></script>
-    <script src="js/config.js?revision=5a0f102"></script>
-    <script src="js/ponymail.js?revision=5a0f102"></script>
-    <script src="js/oauth.js?revision=5a0f102"></script>
+    <script src="js/config.js?revision=f8dc8ff"></script>
+    <script src="js/ponymail.js?revision=f8dc8ff"></script>
+    <script src="js/oauth.js?revision=f8dc8ff"></script>
   </body>
 </html>
diff --git a/webui/thread.html b/webui/thread.html
index 4a18034..70577ae 100644
--- a/webui/thread.html
+++ b/webui/thread.html
@@ -25,7 +25,7 @@
     <!-- Bootstrap -->
     
     <link href="css/bootstrap.min.css" rel="stylesheet" media="all">
-    <link href="css/scaffolding.css?revision=5a0f102" rel="stylesheet" media="all">
+    <link href="css/scaffolding.css?revision=f8dc8ff" rel="stylesheet" media="all">
     <link href="css/modal.css" rel="stylesheet" media="all">
     <link href="css/spinner.css" rel="stylesheet" media="all">
     <link rel="alternate" href="/api/static.lua"/>
@@ -97,9 +97,9 @@
     <script src="js/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="></script>
     <!-- Include all compiled plugins (below), or include individual files as needed -->
     <script src="js/bootstrap.min.js"></script>
-    <script src="js/config.js?revision=5a0f102"></script>
-    <script src="js/wordcloud.js?revision=5a0f102"></script>
-    <script src="js/ponymail.js?revision=5a0f102"></script>
+    <script src="js/config.js?revision=f8dc8ff"></script>
+    <script src="js/wordcloud.js?revision=f8dc8ff"></script>
+    <script src="js/ponymail.js?revision=f8dc8ff"></script>
     <div id="splash" class="splash fade-in"> &nbsp; </div>
     <div style="clear: both;"></div>
   </body>