用Python做一个自动发送邮件的工具

最近工作中的一个项目有自动发送一些信息邮件到指定邮箱的需求,那么如何用Python来实现自动发送邮件的功能呢?接下来就简单的来说一下。


Python SMTP发送邮件


SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议 ,说白了就是发送邮件的协议,python的smplib库对SMTP协议进行了简单的封装,提供了对SMTP的支持,可以发送纯文本邮件、HTML文件以及带附件的邮件。
首先我们构建一个SendEmailManager类,也是遵循着面向对象编程的思想来做,大体结构如下:

class SendEmailManager(object):

    def __init__(self, **kwargs):
        # 初始化参数
        ...

    def _get_conf(self, key):
        # 获取配置参数
        ...

    def _init_conf(self):
        # 初始化配置参数
        ...

    def _login_email(self):
        # 登录邮箱服务器
        ...
    def _make_mail_msg(self):
        # 构建文本邮件对象
        ...

    def do_send_mail(self):
        # 邮件发送
        ...

def __init__(self, **kwargs)

类的初始化函数,可以用来设置对象属性,并给予初始值,可以是参数或者固定值 ,其中参数 **kwargs 是将一个可变的关键字参数的字典传给函数实参,这里里我们主要是对SMTP服务器(这里使用qq邮箱)、发送邮件的代理邮箱、在邮箱中设置的客户端授权密码、可变参数进行一些初始化。具体代码如下:


 

# SMTP服务器,这里使用qq邮箱,其他邮箱自行百度
EMAIL_HOST = 'smtp.qq.com'
# 发送邮件的代理邮箱
EMAIL_HOST_USER = 'xxxx@xxxx.com'
# 在邮箱中设置的客户端授权密码, 注意这里不是邮箱密码,关于如何获取邮箱授权码,请自行百度~~~
EMAIL_HOST_PASSWORD = 'xxxxxxxxxxxxx'
def __init__(self, **kwargs):
    # 初始化参数
    self.email_host = EMAIL_HOST
    self.email_host_user = EMAIL_HOST_USER
    self.email_host_pass = EMAIL_HOST_PASSWORD
    self.kwargs = kwargs

def _get_conf(self, key)

主要负责通过key读取 可变参数self.kwargs 字典里的值,供其他函数使用。

def _get_conf(self, key):
    # 获取配置参数
    value = self.kwargs.get(key)
    if key != "attach_file_list" and (value is None or value == ''):
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值