import smtplib
from email.mime.text import MIMEText
from email.header import Header
# come_from 是自己的邮箱,password是邮箱的授权码
come_from = '2577452716@qq.com'# who 用户是谁 ,相当于用户名。
password = 'jgodszkzfkrqebeb' # 秘钥串 ,相当于密码。
# to_email 是接收的邮箱
to_email = '2435224077@qq.com' # 我要发送给谁
# 邮件服务器
smtp_server = 'smtp.qq.com'  #我们自己不搭建了,有免费的还稳定,出了事情都能找服务商, QQ邮箱的服务域名
# infos = "你是大傻子"  # 我们要发送的内容
# 里边写需要发送的html内容
infos = '<html><body><h1>my name is liuhui</h1><a href="https://www.baidu.com">这是一个连接</a></body></html>'
# 邮箱正文,第一个参数为内容,第二个参数为格式,默认为纯文本,第三个参数是编码
# 这里我用把发送内容赋值给变量infos
# msg = MIMEText(infos, 'plain', 'utf-8')
# 这里我用把发送内容赋值给变量infos  发送html需要把第二个参数改为html
msg = MIMEText(infos, 'html', 'utf-8')
# 邮件头部信息
msg['From'] = Header(come_from)
# 发送给谁
msg['To'] = Header(to_email)
# 邮件主题
msg['Subject'] = Header('1908大实训')
# 创建实例
server = smtplib.SMTP_SSL(smtp_server)
# QQ邮箱SMTP的端口号是465或587
server.connect(smtp_server, 465)
# 登录邮箱
server.login(come_from, password)
# 发送邮件
server.sendmail(come_from, to_email, msg.as_string())
print("发送完成")
# 退出邮箱
server.quit()
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
class SendEmail(object):
    # 构建函数, 初始化基本信息
    def __init__(self, host, user, password):
        # 邮箱按照@分隔
        infos = user.split("@")
        # 把user赋值给_user
        self._user = user
        # 取qq号
        self._account = infos[0]
        #  来自谁       拼接邮箱
        self._me = self._account + "<" + self._user + ">"
        # 创建对象
        server = smtplib.SMTP()
        self._server = server
        # 建立发送对象
        server.connect(host)
        # 登录邮箱
        server.login(self._account, password)
    def sendMail(self, to_email, sub, content, subtype='plain'):
        msg = MIMEText(content, _subtype=subtype, _charset='utf-8')
        # 邮件主题
        msg['Subject'] = sub
        # 邮件头部信息
        msg['From'] = self._me
        # 发给谁
        msg['To'] = ';'.join(to_email)
        try:
            self._server.sendmail(self._me, to_email, msg.as_string())
            return True
        except Exception as e:
            print(str(e))
            return False
    def __del__(self):
        self._server.quit()
        self._server.close()
if __name__ == '__main__':
    mail = SendEmail('smtp.qq.com', '2577452716@qq.com', 'jgodszkzfkrqebeb')
    to_mail = ['2577452716@qq.com', '2435224077@qq.com']
    if mail.sendMail(to_mail, "测试邮件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):
        print("发送成功")
    else:
        print("发送失败")