【Python自学笔记】Python发送邮件(支持群发能过滤无效邮箱,支持添加附件,含源码)

Python发送邮件

首先跟大家分享一下我个人用这个Python发送邮件的用途:在我们运行代码/程序的时候,由于一般是放在服务器上运行或者无法一直人工监视,所有我个人习惯通过添加邮件的方法来发送代码/程序执行的一些日志/情况,这样我们就可以轻松的了解我们的程序运行情况,当然,这个仅仅是我个人用的比较多的地方,其实它还有很多用途,这里就不过多介绍了…

直接上代码

  • 这里说明一下,这个代码是可以直接运行的,由于安全的问题,我已经把自己的邮箱地址和授权码去掉,大家只需要添加一下对应的邮箱地址和邮箱授权码便可以直接使用,代码支持群发和添加附件
  • **由于代码过长,我会把整个文档打包分享给大家**这里展示部分代码
  • 点击这里获取完整源码
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


class SendEmail:
    def __init__(self, subject, body, fj="", receivers=['默认收件箱地址',],
                 sender='发件人地址也是邮箱服务器地址', password='邮箱授权码,注意不是密码'):       # fj是附件的地址
        """
        这是一个发送邮件的方法,可发送附件,默认不发送,
        方法以默认添加了发送服务器和收件箱,也可以自行修改
        :type subject: str
        :type body: str
        :type fj: str
        :type receivers: list
        :type sender: str
        :type password: str
        :param subject:  邮件标题
        :param body:  邮件内容
        :param fj:  附件的地址,省略则不带附件
        :param receivers:  收件人地址,可省略
        :param sender:  发件人地址,可省略
        :param password:  发件人授权码,非密码,可省略
        """
        # 邮件的标题
        self.subject = subject
        # 邮件的内容
        self.body = body
        # 附件地址,默认 为空 不带附件
        self.fj = fj
        # 发送邮箱
        self.sender = sender
        # 发送者的邮箱账号和授权码,是授权码不是密码
        self.password = password
        # 接收邮箱
        self.receivers = receivers


    def send_email(self):
    ...

注意点

源码有很详细的注释,我相信大家通过源码的注释就可以很清楚的了解整个代码了,但是这边我还是说几个注意点

  • 邮箱需开启 SMTP 服务,很多邮箱默认是关闭的,具体的开启方法大家可以自行百度一下
  • 开启SMTP之后需要从设置后台获取授权码
  • 本代码是以163网易邮箱为例,大家如果使用其他的邮箱需要修改对应的地址以及SMTP端口
  • 使用msg['Bcc']加密抄送群发,可以过滤无效邮箱避免程序报错
  • 点击这里获取完整源码
发布了9 篇原创文章 · 获赞 7 · 访问量 220

猜你喜欢

转载自blog.csdn.net/weixin_44906836/article/details/104080454