smtplib     SMTP/ESMTP客户端类

类:
    exceptions.Exception(exceptions.BaseException)
        SMTPException
            SMTPRecipientsRefused
            SMTPResponseException
                SMTPAuthenticationError
                SMTPConnectError
                SMTPDataError
                SMTPHeloError
                SMTPSenderRefused
            SMTPServerDisconnected
    SMTP
        SMTP_SSL
    
    class SMTP
        管理连接到SMTP或ESMTP服务器
        SMTP对象:
            有如下属性:
                helo_resp:服务器回复最近一次HELO命令的消息
                ehlo_resp:服务器回复最近一次EHLO命令的消息,通常为多行
                does_esmtp:是否支持ESMTP
                esmtp_features:支持的ESMTP命令字典。
                
            有以下方法:
                __init__(self, host='', port=0, local_hostname=None, timeout=<object object>) 初始化一个实例
                    host:为远程主机
                    port:端口号,默认使用smtplib.SMTP_PORT
                    local_hostname:作为HELO/EHLO命令的FQDN本地主机
                close(self)
                    断开SMTP服务器连接
                connect(self, host='localhost', port=0)
                    连接服务器
                data(self, msg)
                    SMTP的'DATA'命令 -- 发送消息数据到服务器
                docmd(self, cmd, args='')
                    发送命令,返回回复code
                ehlo(self, name='')
                    发送'EHLO'命令。
                ehlo_or_helo_if_needed(self)
                    若需要则调用self.ehlo()或self.helo()
                expn(self, address)
                    发送SMTP 'expn'命令 -- 扩展一个邮件列表
                getreply(self)
                    从服务器得到响应,返回元组: (code, message)
                has_extn(self, opt)
                    是否支持SMTP服务扩展
                helo(self, name='')
                    发送'HELO'命令
                help(self, args='')
                    发送'HELP'命令
                login(self, user, password)
                    登陆SMTP服务器
                mail(self, sender, options=[])
                    SMTP 'mail'命令 -- 开始xfer回话
                noop(self)
                    SMTP 'noop'命令 -- 不做任何事
                putcmd(self, cmd, args='')
                    发送命令给服务器
                quit(self)
                    中断SMTP回话
                rcpt(self, recip, options=[])
                    发送'rcpt'命令  -- 为邮件标识一个收件人
                rset(self)
                    发送'rset'命令  -- 重置回话
                send(self, str)
                    发送'str'给服务器
                sendmail(self, from_addr, to_addr, msg, mail_options=[], rcpt_options=[])
                    执行一个完整的发送邮件功能
                    from_addr: 发件人,字符串
                    to_addr: 收件人列表,列表型
                    msg: 消息字符串,格式:
                        '''
                            FROM:发件人地址
                            Subject:主题
                            
                            邮件内容
                        '''
                set_debuglevel(self, debuglevel)
                    设置DEBUG等级
                starttls(self, keyfile=None, certfile=None)
                    设置连接为TLS模式
                verify(self, address)
                    SMTP 'verify'命令 -- 检查地址合法性
                vrfy = verify(self, address)
                
            数据和其他属性:
                debuglevel  = 0
                default_port = 25
                deos_esmtp = 0
                ehlo_msg = 'ehlo'
                ehlo_resp = None
                file = None
                helo_resp = None
                
    class SMTP_SSL(SMTP)
        SMTP的子类(在SSL上连接SMTP服务器)
        方法:
            __init__(self, host='', port=0, local_hostname=None, keyfile=None, certfile=None, timeout=<object object>)
        数据:
            default_port = 465
            
    class SMTPException(exceptions.Exception)
        该模块所有其他异常的基类

函数:
    quoteaddr(addr)
        quote邮件地址
    quotedata(data)
        quote数据
        
实例:
    import smtplib
    SMTP_SERVER = 'smpt.163.com'
    FROM_ADDRESS = 'xxx@163.com'
    FROM_PASSWORD = 'xxxxxx'
    TO_ADDRESSES = ['wwww@163.com']
    SUBJECT = '主题'
    CONTENT = '邮件内容'
    body = '\r\n'.join(['FROM:%s'%FROM_ADDRESS, 'SUBJECT:%s'%SUBJECT,'','%s'%CONTENT])
    
    s = smtplib.SMTP()
    s.connect(SMTP_SERVER)
    s.login(FROM_ADDRESS, FROM_PASSWORD)
    s.sendmail(FROM_ADDRESS, TO_ADDRESSES,body)
    s.quit()