python之zmail的邮件发送

自动化测试–python基础之邮件发送

一、使用步骤

这里使用的是python +zmail进行邮件的发送
win+R出现控制台,输入cmd.输入然后输入 pip install zmail 然后输入回车。如图1
在这里插入图片描述
在python中导入zmali,然后我按照这个逻辑进行程序的编写(后面附有代码)。
1、邮件内容:包含:主题(object)、 正文(文本类型((content_text))、
正文(网页类型(content_html)) 、 附件 (attachments)。
2、发件人:发件人账号,发件人密码(授权码)。
3、收件人:1、收件人账号,邮件内容。
2、多个收件人账号,邮件内容。

二、使用步骤

邮件发送使用介绍

先做一个简单的邮件发送,只包含邮件主题和邮件正文


## 2.读入数据

代码如下(示例):

```import zmail
#邮件内容
msg
={
    'subject':'这是邮件主题',
    'content_text':'这是邮件内容'
}
#发件人 -- 账号,授权码  将自己的qq邮箱替代--qq邮箱,授权码--粘贴授权码 (下面会文字和图片的具体步骤,以qq为例)
sender=('qq邮箱','授权码')
#收件人  邮箱 、收件内容
recriver='收件人'
# 调用zmail包中的server,并输入发件人的账号、授权码
server=zmail.server(*sender)
# 输入收件人 邮件内容
server.send_mail(recriver,msg)

运行以后,邮件就会发送到指定邮箱
在这里插入图片描述
这样我们就简单的进行邮件发送了。
如果想发送给多个收件人,那么就在这里进行修改
将recriver=‘收件人’
修改为recriver=[‘收件人1’,‘收件人2’,‘收件人3’,‘收件人4’]

刚才发送的是简单的文字内容,那么我们现在想发送html,改如何操作呢
其实很简单,只需要在邮件内容中将content_text 修改为content_html,将html文件打开并调用.

代码如下(示例):

import zmail

#打开文件
with open('email.html',mode='r',encoding='UFT-8') as file:
    content=file.read()

#邮件内容
msg={
    'subject':'这是邮件主题',
    'content_html':content
}

#发件人 -- 账号,授权码  将自己的qq邮箱替代--qq邮箱,授权码--粘贴授权码 (下面会文字和图片的具体步骤,以qq为例)
sender=('qq邮箱','授权码')

#收件人  
recriver='收件人'

# 调用zmail包中的server,并输入发件人的账号、授权码
server=zmail.server(*sender)

# 输入收件人 邮件内容
server.send_mail(recriver,msg)

注意!!!如果同时出现content_text和content_html时,content_text会对content_html进行覆盖。邮件上只会显示content_text

有些小伙伴会想,我有时候邮件需要发送附件应该怎么操作呢。这个情况就更简单了。我们在meg也就是邮件正文中加入attachments。然后输入附件名称就好了。如果附件不和运行python文件在同一个文件夹,那么需要绝对路径

#邮件内容
msg={
    'subject':'这是邮件主题',
    'content_text':'这是文件内容'
    ‘attachments’:'文件名称'
}

发送邮件功能的封装

这就是我学的邮件发送的部分内容了,那么我们对它进行简单的封装一下吧!,方便在项目中使用的时候用到

import zmail

class Email_object():
    def __init__(self,object,content,*attachments):
        '''邮件内容 :邮件主题,邮件内容,邮件附件'''
        self.object=object
        self.content=content
        self.attachments=list(attachments)
        self.msg={
            'subject':self.object,
            'content_text':self.content,
            'attachments':self.attachments
        }

    def send_email(self,*sender,**rec):
        #发件人
        self.sender=sender
        #收件人
        self.recriver=[]
        #遍历rec的值并添加到收件人
        for i in rec.values():
            self.recriver.append(i)
        #登录操作
        server=zmail.server(*sender)
        #发送操作
        server.send_mail(self.recriver,self.msg)

最后对类进行调用就可以了。
解
当然这还需要完善,这只是简单的进行封装。这也只是我个人的思路方法。有不同的想法可以在下方进行留言。

授权码获取

下面以qq邮箱为例子
1、打开qq邮箱
2、点击设置
在这里插入图片描述
3、鼠标滚轮滚到下方,开启POP3/SMTP服务
4、点击生成授权码
5、获得授权码
在这里插入图片描述

总结

提示:这里对文章进行总结:
这个就是通过python中zemail库对邮件发送这个功能进行简单的介绍,欢迎大家留言

-----------------------------------小白的第一次发布------------------------------------------

猜你喜欢

转载自blog.csdn.net/weixin_43977279/article/details/124045279