Este ejemplo de uso proporciona acceso a la seguridad de la capa de transporte (a menudo conocida como «capa de sockets seguros») y las funciones de autenticación de pares para los sockets de red, tanto del lado del cliente como del lado del servidor. Este ejemplo de código python utiliza la biblioteca OpenSSL para resolver el problema del protocolo de enlace incorrecto de SSL en la nube de Alibaba.

Python
import email
import logging
import os
import json
import smtplib
from argparse import ArgumentParser
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import ssl
class SMTPMailer(object):
    """SMTPMailer is an simple SMTP email sender."""
    def __init__(self,
                 username,
                 password,
                 sender = 'example@mail.imc',
                 recipients=[],
                 cc=[],
                 attachments=[],
                 subject='',
                 body='',
                 mime_subtype='html',
                 host='smtp.alibaba-inc.com',
                 port=465):
        self.__log = logging.getLogger('app.sub')         
        self.host = host
        self.port = port
        self.username = username
        self.password = password
        self.sender = sender
        self.__recipients = recipients
        self.__cc = cc
        self.__subject = subject
        self.__body = body
        self.__attachments = attachments
        self.__mime_subtype = mime_subtype
    @classmethod
    def build_from_json(cls, rawjs):
        """
        Build an SMTPMailer from a JSON string.
        Args:
            rawjs: the JSON string, e.g.
            {
                "smtp": {
                    "host": "smtp.alibaba-inc.com",
                    "port": 465,
                    "username": "mingjie.tmj@alibaba-inc.com",
                    "password": "******"
                },
                "from": "mingjie.tmj@alibaba-inc.com",
                "to": [ "mingjie.tmj@alibaba-inc.com" ],
                "cc": [],
                "subject": "This is really wonderful",
                "body": "Body Game",
                "attachments": [ "./smtp_mailer.py" ]
            }
        """
        o = cls('', '')
        js = json.loads(rawjs)
        o.host = js['smtp'].get('host', 'smtp.alibaba-inc.com')
        o.port = js['smtp'].get('port', 465)
        o.username = js['smtp']['username']
        o.password = js['smtp']['password']
        o.sender = js['from']
        o.recipients = js['to']
        o.cc = js['cc']
        o.subject = js['subject']
        o.body = js['body']
        o.attachments = js['attachments']
        return o
    def send(self):
        """Send mail to recipients."""
        outer = MIMEMultipart()
        outer.set_charset('utf-8')
        outer['From'] = self.sender
        outer['To'] = ', '.join(self.__recipients)
        outer['CC'] = ', '.join(self.__cc)
        outer['Subject'] = Header(self.__subject, 'utf-8')
        outer['Message-id'] = email.utils.make_msgid()
        outer['Date'] = email.utils.formatdate()
        status=True
        # attach plain text body
        text_body = MIMEText(self.__body, self.__mime_subtype, _charset='utf-8')
        outer.attach(text_body)
        # attach the files
        for filename in self.__attachments:
            if not os.path.isfile(filename):
                raise Exception('attachment "%s" is not a file' % (filename))
            base_filename = os.path.basename(filename)
            fp = open(filename, 'rb')
            attachment = MIMEApplication(fp.read(), Name=base_filename)
            fp.close()
            attachment.add_header(
                'Content-Disposition', 'attachment', filename=base_filename)
            outer.attach(attachment)
        context=ssl.create_default_context()
        context.set_ciphers("DEFAULT")
        s = smtplib.SMTP_SSL(host=self.host, port=self.port,context=context)#
        s.ehlo()
        s.set_debuglevel (0)
        #s.starttls ()
        try:
            s.login(self.username, self.password)
        except smtplib.SMTPAuthenticationError as serr:
            self.get_Log().error(serr.strerror)
            raise Exception("SMTP Autentication Error " + serr.strerror)
        s.ehlo()    
        try:
            self.get_Log().info(self.sender + " " + ''.join(self.__recipients) + " " + outer.as_string())
            s.sendmail(self.sender, self.__recipients, outer.as_string())
        except smtplib.SMTPException as serr:
            self.get_Log().error(serr.strerror)
            raise Exception("SMTP Send Error " + serr.strerror)
        s.ehlo()    
        s.quit()
    def to_json(self):
        """Get JSON representation string of this SMTPMailer object."""
        return json.dumps(self.__dict__, indent=4)
    
    def get_Log(self):
        return self.__log