Index: trunk/scripts/outage/outage-mail
===================================================================
--- trunk/scripts/outage/outage-mail	(revision 2275)
+++ trunk/scripts/outage/outage-mail	(revision 2276)
@@ -18,10 +18,20 @@
     msg = MIMEText(message % vm)
     msg['To'] = contact
-    msg['CC'] = 'XVM <xvm@mit.edu>'
+    msg['From'] = opts.from_addr
     msg['Reply-To'] = 'XVM <xvm@mit.edu>'
-    msg['From'] = opts.from_addr
     msg['Subject'] = opts.subject % vm
     smtp.sendmail(opts.from_addr,
-        [contact, 'xvm@mit.edu'],
+        [contact],
+        msg.as_string())
+    return msg.as_string()
+
+def send_summary(smtp, opts, messages):
+    msg = MIMEText('\n\n\n'.join(messages))
+    msg['To'] = 'xvm@mit.edu'
+    msg['From'] = opts.from_addr
+    msg['Subject'] = ("xvm outage-mail summary (%d): %s"
+                      % (len(messages), opts.subject))
+    smtp.sendmail(opts.from_addr,
+        ['xvm@mit.edu'],
         msg.as_string())
 
@@ -66,6 +76,8 @@
     s.connect()
 
+    messages = []
     for vm in vms:
-        send_mail(s, opts, message, vm)
+        messages.append(send_mail(s, opts, message, vm))
+    send_summary(s, opts, messages)
 
     s.close()
