Improve scan-view report bug (submitted) interface.

Give more meaningful error messages / fail gracefully on bad form
input or SMTP errors.

Use button for Report Bug link (where available).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56420 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/scan-view/Reporter.py b/tools/scan-view/Reporter.py
index b32caf5..22e4311 100644
--- a/tools/scan-view/Reporter.py
+++ b/tools/scan-view/Reporter.py
@@ -72,8 +72,10 @@
 Description: %s
 """%(report.title, report.description)
 
-        if not parameters.get('To') or not parameters.get('From'):
-            raise ValueError,'Invalid email parameters.'
+        if not parameters.get('To'):
+            raise ReportFailure('No "To" address specified.')
+        if not parameters.get('From'):
+            raise ReportFailure('No "From" address specified.')
 
         msg = MIMEMultipart()
         msg['Subject'] = 'BUG REPORT: %s'%(report.title)
@@ -85,11 +87,16 @@
         msg.attach(MIMEText(mainMsg, _subtype='text/plain'))
         for file in report.files:
             self.attachFile(msg, file)
-        
-        s = smtplib.SMTP(host=parameters.get('SMTP Server'),
-                         port=parameters.get('SMTP Port'))
-        s.sendmail(msg['From'], msg['To'], msg.as_string())
-        s.close()
+
+        try:
+            s = smtplib.SMTP(host=parameters.get('SMTP Server'),
+                             port=parameters.get('SMTP Port'))
+            s.sendmail(msg['From'], msg['To'], msg.as_string())
+            s.close()
+        except:
+            raise ReportFailure('Unable to send message via SMTP.')
+
+        return "Message sent!"
 
 class BugzillaReporter:
     def getName(self):