Package tlslite :: Package integration :: Module SMTP_TLS :: Class SMTP_TLS
[show private | hide private]
[frames | no frames]

Class SMTP_TLS

SMTP --+
       |
      SMTP_TLS


This class extends smtplib.SMTP with TLS support.
Method Summary
  starttls(self, username, password, sharedKey, certChain, privateKey, cryptoID, protocol, x509Fingerprint, x509TrustList, x509CommonName, settings)
Puts the connection to the SMTP server into TLS mode.
    Inherited from SMTP
  __init__(self, host, port, local_hostname)
Initialize a new instance.
  close(self)
Close the connection to the SMTP server.
  connect(self, host, port)
Connect to a host on a given port.
  data(self, msg)
SMTP 'DATA' command -- sends message data to server.
  docmd(self, cmd, args)
Send a command, and return its response code.
  ehlo(self, name)
SMTP 'ehlo' command.
  expn(self, address)
SMTP 'verify' command -- checks for address validity.
  getreply(self)
Get a reply from the server.
  has_extn(self, opt)
Does the server support a given SMTP service extension?
  helo(self, name)
SMTP 'helo' command.
  help(self, args)
SMTP 'help' command.
  login(self, user, password)
Log in on an SMTP server that requires authentication.
  mail(self, sender, options)
SMTP 'mail' command -- begins mail xfer session.
  noop(self)
SMTP 'noop' command -- doesn't do anything :>
  putcmd(self, cmd, args)
Send a command to the server.
  quit(self)
Terminate the SMTP session.
  rcpt(self, recip, options)
SMTP 'rcpt' command -- indicates 1 recipient for this mail.
  rset(self)
SMTP 'rset' command -- resets session.
  send(self, str)
Send `str' to the server.
  sendmail(self, from_addr, to_addrs, msg, mail_options, rcpt_options)
This command performs an entire mail transaction.
  set_debuglevel(self, debuglevel)
Set the debug output level.
  verify(self, address)
SMTP 'verify' command -- checks for address validity.
  vrfy(self, address)
SMTP 'verify' command -- checks for address validity.

Class Variable Summary
    Inherited from SMTP
int debuglevel = 0                                                                     
int does_esmtp = 0                                                                     
NoneType ehlo_resp = None                                                                  
NoneType file = None                                                                  
NoneType helo_resp = None                                                                  

Method Details

starttls(self, username=None, password=None, sharedKey=None, certChain=None, privateKey=None, cryptoID=None, protocol=None, x509Fingerprint=None, x509TrustList=None, x509CommonName=None, settings=None)

Puts the connection to the SMTP server into TLS mode.

If the server supports TLS, this will encrypt the rest of the SMTP session.

For client authentication, use one of these argument combinations:
  • username, password (SRP)
  • username, sharedKey (shared-key)
  • certChain, privateKey (certificate)
For server authentication, you can either rely on the implicit mutual authentication performed by SRP or shared-keys, or you can do certificate-based server authentication with one of these argument combinations:
  • cryptoID[, protocol] (requires cryptoIDlib)
  • x509Fingerprint
  • x509TrustList[, x509CommonName] (requires cryptlib_py)

Certificate-based server authentication is compatible with SRP or certificate-based client authentication. It is not compatible with shared-keys.

The caller should be prepared to handle TLS-specific exceptions. See the client handshake functions in tlslite.TLSConnection.TLSConnection for details on which exceptions might be raised.
Parameters:
username - SRP or shared-key username. Requires the 'password' or 'sharedKey' argument.
           (type=str)
password - SRP password for mutual authentication. Requires the 'username' argument.
           (type=str)
sharedKey - Shared key for mutual authentication. Requires the 'username' argument.
           (type=str)
certChain - Certificate chain for client authentication. Requires the 'privateKey' argument. Excludes the SRP or shared-key related arguments.
           (type=tlslite.X509CertChain.X509CertChain or cryptoIDlib.CertChain.CertChain)
privateKey - Private key for client authentication. Requires the 'certChain' argument. Excludes the SRP or shared-key related arguments.
           (type=tlslite.utils.RSAKey.RSAKey)
cryptoID - cryptoID for server authentication. Mutually exclusive with the 'x509...' arguments.
           (type=str)
protocol - cryptoID protocol URI for server authentication. Requires the 'cryptoID' argument.
           (type=str)
x509Fingerprint - Hex-encoded X.509 fingerprint for server authentication. Mutually exclusive with the 'cryptoID' and 'x509TrustList' arguments.
           (type=str)
x509TrustList - A list of trusted root certificates. The other party must present a certificate chain which extends to one of these root certificates. The cryptlib_py module must be installed to use this parameter. Mutually exclusive with the 'cryptoID' and 'x509Fingerprint' arguments.
           (type=list of tlslite.X509.X509)
x509CommonName - The end-entity certificate's 'CN' field must match this value. For a web server, this is typically a server name such as 'www.amazon.com'. Mutually exclusive with the 'cryptoID' and 'x509Fingerprint' arguments. Requires the 'x509TrustList' argument.
           (type=str)
settings - Various settings which can be used to control the ciphersuites, certificate types, and SSL/TLS versions offered by the client.
           (type=tlslite.HandshakeSettings.HandshakeSettings)
Overrides:
smtplib.SMTP.starttls

Generated by Epydoc 2.0 on Mon Feb 21 21:56:54 2005 http://epydoc.sf.net