Python Smtp 协议发送邮件类

创作人 Leo


编辑时间 Wed Jan 1,2020 at 10:13


python 调用 smtp 发送邮件

mail_smtp.py

# -*- coding: utf-8 -*-
import smtplib
 
class mail_smtp :
 
    smtp_addr = ''
    username = ''
    password = ''
    from_addr = ''
    to_addrs = []
    cc_addrs = []
    subject = ''
    content = ''
 
    server = None
 
    def __init__(self, smtp_addr, username, password):
        self.smtp_addr = smtp_addr
        self.username = username
        self.password = password
        self.connect()
         
    def connect(self) :
        self.server = smtplib.SMTP(self.smtp_addr)
        self.server.login(self.username, self.password)
 
    def setFrom(self, from_addr) :
        self.from_addr = from_addr
 
    def setTo(self, to_addrs) :
        self.to_addrs = to_addrs
 
    def setCc(self, cc_addrs) :
        self.cc_addrs = cc_addrs
 
    def setContent(self, subject, content) :
        self.subject = subject
        self.content = content
 
    def getMessage(self) :
        msg = "From: {_from}\r\n".format(_from=self.from_addr)
        msg = msg + "To: {_to}\r\n".format(_to=", ".join(self.to_addrs))
        if self.cc_addrs :
            msg = msg + "Cc: {_cc}\r\n".format(_cc=", ".join(self.cc_addrs))
        msg = msg + "Subject: {_subject}\r\n".format(_subject=self.subject)
        msg = msg + "\r\n" 
        msg = msg + self.content
        return msg
 
    def send(self) :
        to_addrs = self.to_addrs + self.cc_addrs 
        msg = self.getMessage()
        self.server.sendmail(self.from_addr, to_addrs, msg)
 
    def close(self) :
        self.server.quit()

使用示例:

# -*- coding: utf-8 -*-
from mail_smtp import mail_smtp
 
ms = mail_smtp('smtp.qq.com', 'admin@mycompany.com', 'L123456')
ms.setFrom('admin@mycompany.com')
ms.setTo(['sss@126.com','aaa@126.com'])
ms.setCc(['xxx@126.com'])
ms.setContent('python mail test', 'python mail test ok')
ms.send()
ms.close()


阅读:1463
搜索
  • Linux 高性能网络编程库 Libevent 简介和示例 2557
  • Mac系统编译PHP7【20190929更新】 2290
  • zksync 和 layer2 2191
  • web rtc 学习笔记(一) 2172
  • Hadoop 高可用集群搭建 (Hadoop HA) 2160
  • Hadoop Map Reduce 案例:好友推荐 2104
  • react 学习笔记(一) 2065
  • Linux 常用命令 2056
  • 小白鼠问题 2040
  • 安徽黄山游 2038
简介
不定期分享软件开发经验,生活经验