自动化发送邮件

SMTP:
通过SMTP来关联其他邮箱
在python中,有一个已经被保留的,smtplib,专门用于处理邮件的库。mail库处理邮件内容的库

QQ邮箱需要在设置页面打开pop3
在这里插入图片描述
案例:
1.邮件的主题,寄件人,收件人,邮件正文,附件

2.邮件正文:文本信息,HTML信息,图片内容

3.附件内容:TXT,doc,pic

代码示例:

#场景例如:你这个测试用例跑完了,要发送给一些人的邮箱
#需要导入SMTPLTB库,来进行邮箱的连接
import smtplib
#用于处理邮件内容的库,
from email.mime.text import MIMEText
#处理邮件附件,需要导入MIMEultipart,Header,MIMEBase
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.base import MIMEBase


#邮箱属性的配置,要去连接的邮箱服务器,使用SMTP协议,格式就是smtp.邮箱URL,如果是163:smtp.163.com
#当前变量都是脚本编写者自定义内容,非python库已经定义好的字段名称
mailserver = 'smtp.qq.com'
#发送人的邮箱,
userName_sendMail ='2433310891@qq.com'
#邮箱发件授权码,例如QQ邮箱在设置中打开pop3时,会给授权码
userName_AuthCode = 'hkwaanmnfgbdecab'
#定义邮件接收者,可以是多个
received_mail = ['3160226077@qq.com','jintao@hexinjingu.com']

#发送一封简单的邮件
#邮件的内容
#支持文本和HTML
#content = '这里是文本信息',这个是邮件内容时文本的写法
#发送一封HTML文本的邮件
content = '''
<p> 这个邮件发给你,有时间可以看下哈,我在代码进行了很多的注释第一个是博客,第二个是教学视频</p>
<p><a href ="https://blog.csdn.net/qq_39204060/article/details/109996940" >第一个是博客,代码进行了很多的注释</a></p>
<p><a href ="https://www.bilibili.com/video/BV1uE411Y79D" >第二个是教学视频</a></p>
'''
#邮件内容的定义,通过MIMEText操作
#创建一个邮件内容类MIMEText的对象email,当前函数中传参写法为固定的格式,第一个字段是邮件内容,第二个字段意思是文本的展示形式,plain代表文本形式,HTML为网页形式,utf-8为编码,因为文本内容中含有汉字,避免出现乱码
email = MIMEText(content,'HTML','utf_8')
#设置邮件对象所需要的属性,左侧的属性['subject']为MIMEText库定义死的写法
#邮件主题就是邮件的标题
email['subject'] = '嘿嘿,这个是一封通过python发送的邮件'
#邮件的发件人,数据调用上面已经配置好的参数
email['From'] = userName_sendMail
#邮件收件人,数据调用上面配置好的参数,写法是MIMEText库已定义的写法,逗号是参照上面收件人定义的字符串,以逗号来进行分割
email['To'] = ','.join(received_mail)

#处理邮件附件
#非图片附件

# att = MIMEBase('applcation','octet-stream')
# att.set_payload(open('诗篇.txt','rb').read())
# att.add_header('Content-Disposition','attachment',filename = Header('诗篇.txt','gbk').encode())
# encoders.encode_base64(att)
# email.attach(att)
#图片附件

#发送邮件
#调用smtp函数,port为邮箱端口号,可以百度搜索获取例如:QQ邮箱SMTP端口
#创建一个对象
smtp = smtplib.SMTP_SSL(mailserver,port= 465)
#对象进行授权,需要发送人的邮箱号和授权码,调用上面配置好的参数
smtp.login(userName_sendMail , userName_AuthCode)
#发送邮件定义好的写法,需要发送人邮箱号,接收人邮箱号,as_string()转换为string类型
smtp.sendmail(userName_sendMail,','.join(received_mail),email.as_string())
#执行完成之后进行退出
smtp.quit()



要实现Python自动化发送邮件,首先需要准备工作和设置邮箱的SMTP服务。可以参考《快学Python自动化办公轻松实战》一书中的相关章节\[1\]。在准备工作中,需要了解电子邮件的基础知识,并使用Python邮件库来实现自动发送邮件\[2\]。 在Python中,可以使用SMTP()和send()方法来实现邮件的发送。SMTP()方法用于建立与邮件服务器的连接,而send()方法用于发送邮件。具体的实现步骤可以参考书中的实例代码\[2\]。 在实现之前,需要开启自己邮箱的SMTP服务。一般可以在邮箱的设置中找到SMTP服务的开启选项。开启SMTP服务后,可以获取到当前账户的授权码,该授权码在程序实现的过程中会用到\[3\]。 总结起来,要实现Python自动化发送邮件,需要进行以下步骤: 1. 了解电子邮件的基础知识。 2. 使用Python邮件库来实现自动发送邮件。 3. 开启自己邮箱的SMTP服务,并获取授权码。 参考资料: \[1\] 《快学Python自动化办公轻松实战》, 黄伟、朱鹏伟, 电子工业出版社, 9787121436345, 2022. \[2\] 参考信息中的《快学Python自动化办公轻松实战》一书中的相关章节。 \[3\] 参考信息中的《快学Python自动化办公轻松实战》一书中的相关章节。 #### 引用[.reference_title] - *1* *2* *3* [python自动发送邮件实现](https://blog.csdn.net/weixin_42521211/article/details/128857411)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值