@@ -703,23 +703,17 @@ def email(ui, repo, *revs, **opts):
fp.write('\n')
except IOError as inst:
if inst.errno != errno.EPIPE:
raise
if fp is not ui:
fp.close()
else:
if not sendmail:
- verifycert = ui.config('smtp', 'verifycert', 'strict')
- if opts.get('insecure'):
- ui.setconfig('smtp', 'verifycert', 'loose', 'patchbomb')
- try:
- sendmail = mail.connect(ui, mbox=mbox)
- finally:
- ui.setconfig('smtp', 'verifycert', verifycert, 'patchbomb')
+ sendmail = mail.connect(ui, mbox=mbox)
ui.status(_('sending '), subj, ' ...\n')
ui.progress(_('sending'), i, item=subj, total=len(msgs),
unit=_('emails'))
if not mbox:
# Exim does not remove the Bcc field
del m['Bcc']
fp = stringio()
generator = emailmod.Generator.Generator(fp, mangle_from_=False)
@@ -1481,26 +1481,16 @@ Configuration for extensions that need t
``port``
Optional. Port to connect to on mail server. (default: 465 if
``tls`` is smtps; 25 otherwise)
``tls``
Optional. Method to enable TLS when connecting to mail server: starttls,
smtps or none. (default: none)
-``verifycert``
- Optional. Verification for the certificate of mail server, when
- ``tls`` is starttls or smtps. "strict", "loose" or False. For
- "strict" or "loose", the certificate is verified as same as the
- verification for HTTPS connections (see ``[hostfingerprints]`` and
- ``[web] cacerts`` also). For "strict", sending email is also
- aborted, if there is no configuration for mail server in
- ``[hostfingerprints]`` and ``[web] cacerts``. --insecure for
- :hg:`email` overwrites this as "loose". (default: strict)
-
``username``
Optional. User name for authenticating with the SMTP server.
(default: None)
``password``
Optional. Password for authenticating with the SMTP server. If not
specified, interactive sessions will prompt the user for a
password; non-interactive sessions will fail. (default: None)
@@ -101,23 +101,16 @@ def _smtp(ui):
# backward compatible: when tls = true, we use starttls.
starttls = tls == 'starttls' or util.parsebool(tls)
smtps = tls == 'smtps'
if (starttls or smtps) and not util.safehasattr(socket, 'ssl'):
raise error.Abort(_("can't use TLS: Python SSL support not installed"))
mailhost = ui.config('smtp', 'host')
if not mailhost:
raise error.Abort(_('smtp.host not configured - cannot send mail'))
- verifycert = ui.config('smtp', 'verifycert', 'strict')
- if verifycert not in ['strict', 'loose']:
- if util.parsebool(verifycert) is not False:
- raise error.Abort(_('invalid smtp.verifycert configuration: %s')
- % (verifycert))
- verifycert = False
-
if smtps:
ui.note(_('(using smtps)\n'))
s = SMTPS(ui, local_hostname=local_hostname, host=mailhost)
elif starttls:
s = STARTTLS(ui, local_hostname=local_hostname, host=mailhost)
else:
s = smtplib.SMTP(local_hostname=local_hostname)
if smtps:
@@ -128,19 +121,19 @@ def _smtp(ui):
ui.note(_('sending mail: smtp host %s, port %d\n') %
(mailhost, mailport))
s.connect(host=mailhost, port=mailport)
if starttls:
ui.note(_('(using starttls)\n'))
s.ehlo()
s.starttls()
s.ehlo()
- if (starttls or smtps) and verifycert:
+ if starttls or smtps:
ui.note(_('(verifying remote certificate)\n'))
- sslutil.validatesocket(s.sock, verifycert == 'strict')
+ sslutil.validatesocket(s.sock)
username = ui.config('smtp', 'username')
password = ui.config('smtp', 'password')
if username and not password:
password = ui.getpass()
if username and password:
ui.note(_('(authenticating to mail server as %s)\n') %
(username))
try: