diff --git a/hgext/patchbomb.py b/hgext/patchbomb.py --- a/hgext/patchbomb.py +++ b/hgext/patchbomb.py @@ -31,20 +31,10 @@ # the messages directly. This can be reviewed e.g. with "mutt -R -f mbox", # and finally sent with "formail -s sendmail -bm -t < mbox". # -# To configure a default mail host, add a section like this to your -# hgrc file: -# -# [smtp] -# host = my_mail_host -# port = 1025 -# tls = yes # or omit if not needed -# username = user # if SMTP authentication required -# password = password # if SMTP authentication required - PLAINTEXT -# # To configure other defaults, add a section like this to your hgrc # file: # -# [patchbomb] +# [email] # from = My Name # to = recipient1, recipient2, ... # cc = cc1, cc2, ... @@ -52,7 +42,7 @@ from mercurial.demandload import * demandload(globals(), '''email.MIMEMultipart email.MIMEText email.Utils mercurial:commands,hg,ui - os errno popen2 smtplib socket sys tempfile time''') + os errno popen2 socket sys tempfile time''') from mercurial.i18n import gettext as _ try: @@ -183,11 +173,13 @@ def patchbomb(ui, repo, *revs, **opts): jumbo.extend(p) msgs.append(makepatch(p, i + 1, len(patches))) - sender = (opts['from'] or ui.config('patchbomb', 'from') or + sender = (opts['from'] or ui.config('email', 'from') or + ui.config('patchbomb', 'from') or prompt('From', ui.username())) def getaddrs(opt, prpt, default = None): - addrs = opts[opt] or (ui.config('patchbomb', opt) or + addrs = opts[opt] or (ui.config('email', opt) or + ui.config('patchbomb', opt) or prompt(prpt, default = default)).split(',') return [a.strip() for a in addrs if a.strip()] to = getaddrs('to', 'To') @@ -223,17 +215,7 @@ def patchbomb(ui, repo, *revs, **opts): ui.write('\n') if not opts['test'] and not opts['mbox']: - s = smtplib.SMTP() - s.connect(host = ui.config('smtp', 'host', 'mail'), - port = int(ui.config('smtp', 'port', 25))) - if ui.configbool('smtp', 'tls'): - s.ehlo() - s.starttls() - s.ehlo() - username = ui.config('smtp', 'username') - password = ui.config('smtp', 'password') - if username and password: - s.login(username, password) + mail = ui.sendmail() parent = None tz = time.strftime('%z') sender_addr = email.Utils.parseaddr(sender)[1] @@ -271,9 +253,9 @@ def patchbomb(ui, repo, *revs, **opts): fp.close() else: ui.status('Sending ', m['Subject'], ' ...\n') - s.sendmail(sender, to + cc, m.as_string(0)) + mail.sendmail(sender, to + cc, m.as_string(0)) if not opts['test'] and not opts['mbox']: - s.close() + mail.close() cmdtable = { 'email':