Commit 96c108ac authored by Christian Ebert's avatar Christian Ebert

Catch smtp exceptions

parent 5b81c1cc6ebe
......@@ -224,9 +224,8 @@ def patchbomb(ui, repo, *revs, **opts):
pass
os.rmdir(tmpdir)
really_sending = not (opts['test'] or opts['mbox'])
if really_sending:
if not (opts['test'] or opts['mbox']):
# really sending
mail.validateconfig(ui)
if not (revs or opts.get('rev') or opts.get('outgoing')):
......@@ -361,8 +360,6 @@ def patchbomb(ui, repo, *revs, **opts):
ui.write('\n')
if really_sending:
mailer = mail.connect(ui)
parent = None
sender_addr = email.Utils.parseaddr(sender)[1]
......@@ -411,7 +408,7 @@ def patchbomb(ui, repo, *revs, **opts):
ui.status('Sending ', m['Subject'], ' ...\n')
# Exim does not remove the Bcc field
del m['Bcc']
mailer.sendmail(sender, to + bcc + cc, m.as_string(0))
mail.sendmail(ui, sender, to + bcc + cc, m.as_string(0))
cmdtable = {
"email":
......
......@@ -67,7 +67,13 @@ def connect(ui):
return _sendmail(ui, method)
def sendmail(ui, sender, recipients, msg):
return connect(ui).sendmail(sender, recipients, msg)
try:
return connect(ui).sendmail(sender, recipients, msg)
except smtplib.SMTPRecipientsRefused, inst:
recipients = [r[1] for r in inst.recipients.values()]
raise util.Abort('\n' + '\n'.join(recipients))
except smtplib.SMTPException, inst:
raise util.Abort(inst)
def validateconfig(ui):
'''determine if we have enough config data to try sending email.'''
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment