今天优化了下之前定时任务时的发送邮件的代码。
添加了:
1、抄送
2、添加附件

使用1:
可以直接在下面这个文件的
if name == ‘main’:
里直接调用

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr
from email.mime.application import MIMEApplicationdef sendemail(sender, passwd, to_receiver: list, cc_receiver: list, title='邮件标题', content='邮件内容', attachment=''):"""QQ mail support onlysender,发送者passwd,发送人qq邮箱授权码。这个授权码,是在qq邮箱里账户设置里设置的三方授权码。用pop3to_receiver,接受人,可以传列表,给多个人发cc_receiver,抄送人,可以传列表,给多个人发title,邮箱标题content,邮件内容attachment,附件。传一个地址"""# 1、设置发送者msg = MIMEMultipart()  # MIMEMultipart类可以放任何内容my_sender = sendermy_pass = passwd  # 接受者my_to_receiver = to_receivermy_cc_receiver = cc_receiverreceiver = my_to_receiver + my_cc_receivermsg['From'] = formataddr(('发送者', my_sender))msg['To'] = ",".join(my_to_receiver)msg['Cc'] = ",".join(my_cc_receiver)# 2、设置邮件标题msg['Subject'] = title# 3、邮件内容my_content = content  # 邮件内容msg.attach(MIMEText(my_content, 'plain', 'utf-8'))  # 把内容加进去# 4、添加附件fujian = attachment  # 定义附件if fujian == '':  # 如果没传附件地址,就直接略过passelse:my_att = MIMEApplication(open(fujian, 'rb').read())  # 用二进制读附件my_att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', 'phone_section_result.xls'))msg.attach(my_att)  # 添加附件# 5、发送邮件try:server = smtplib.SMTP_SSL("smtp.qq.com", 465)server.login(my_sender, my_pass)server.sendmail(my_sender, receiver, msg.as_string())print("邮件发送成功")server.quit()except Exception as n:print("Error: 无法发送邮件")print(n)if __name__ == '__main__':sender_main = 'XXX@qq.com'passwd_main = 'XXX' #这个授权码,是在qq邮箱里账户设置里设置的三方授权码。用pop3,就是Python脚本中登录邮箱时的密码,而不是你平时登录邮箱时的那个密码to_receiver_main = ['XXX@qq.com']CC_receiver_main = ['XXX1@qq.com']title_main = '2022年3月29日'content_main = """hello everyone:留点时间留点空闲,领着孩子常回家看看。带上笑容带上祝愿,啦啦啦忘词啦。我说谢谢你,感谢有你,温暖了四季。感谢你,因为有你,把笑容传递。public class void main()1234567890"""attachment_main = ''sendemail(sender=sender_main,passwd=passwd_main,to_receiver=to_receiver_main,cc_receiver=CC_receiver_main,title=title_main,content=content_main)

使用2:
也可以在另外的文件里写代码调用。
例如:
1、将上边的代码保存一个文件,比如叫:send_mail_ex2.py
2、新建一个文件,名字随意。比如叫:t_import_sendmail.py
3、编辑t_import_sendmail.py

from send_mail_ex2 import sendemailsender = 'XXX@qq.com'
passwd = 'XXX'
to_receiver = ['XXX@qq.com']
CC_receiver = ['XXX123@qq.com']
title = '2022年3月29日测试'
content = """ 邮件内容 """
attachment = ''sendemail(sender=sender,passwd =passwd,to_receiver=to_receiver,cc_receiver=CC_receiver,title=title,content=content,attachment=attachment)

4、运行t_import_sendmail.py,查看邮箱接收情况。

邮件发送和接受成功。结束

Python用QQ邮箱发送邮件,支持抄送和附件相关推荐

  1. python 用QQ邮箱发送邮件

    SMTP 是发送邮件的协议.Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮箱. Python对SMTP支持有smtplib 和email 两个模块,email负责构造 ...

  2. smtplib库:Python使用QQ邮箱发送邮件

    目录 前言 发送email文本消息 发送email图片与附件消息 前言 一般来说,每个App都有一个意见反馈功能.对于企业,其意见反馈自然是发送到其服务器上,而对于个人应用来说,因为使用的人相对较少, ...

  3. Web自动化【7】——python 使用QQ邮箱发送邮件,端口号25,465,578,的区别,及错误码535,530的解决办法

    先上代码,方式一二三分别对应使用smtp不同端口号发送邮件的实现方式. (1)端口号25:明文传输 (2)端口号456,基于SSL协议 (3)端口号578,基于STARTTLS协议 所以实现当时会有所 ...

  4. 使用python操作qq邮箱发送邮件

    ##历时3天,终于写完了这个代码, 以下全是干货 import smtplib from email.mime.text import MIMEText#确定发送方.邮箱授权码和接收方,邮件主题和内容 ...

  5. Python登录qq邮箱发送邮件(附件)

    # -*- coding: utf-8 -*- #导入smtplib和MIMETextimport smtplib,time from email.mime.text import MIMEText ...

  6. 用Python使用QQ邮箱发送邮件

    写在开头的话:发邮件当然还是用邮箱来的方便,但是这个不可以用来装B不是 向单个人发送邮件 from email import encoders from email.header import Hea ...

  7. python登录qq邮箱爬邮件_python实现QQ邮箱发送邮件

    本文实例为大家共享了python实现QQ邮箱发送邮件的详细代码,供大家参考,详细内容如下 1.代码: #!/usr/bin/python # -*- coding: utf-8 -*- import ...

  8. Python使用QQ邮箱发送多收件人email

    实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢? 代码很简单,短短几行代码就可以实现这个功能. 使用到的模块有smtplib和email这个两个模块,关于这两个模块 ...

  9. python脚本实现qq邮箱发送邮件

    直接调用python自带得smtplib 库和 email 库就能实现邮件的发送 qq邮箱发送邮件需要在qq邮箱中设置开启qq邮箱授权码 进入网页版qq邮箱,点击设置,找到账户设置 下拉到最下面 生成 ...

  10. python向自己qq邮箱发信息_Python实现给qq邮箱发送邮件的方法

    本文实例讲述了Python实现给qq邮箱发送邮件的方法..具体实现方法如下: #-*-coding:utf-8-*- #======================================== ...

最新文章

  1. shell脚本中的case语句使用要点
  2. lua mysql insert_Lua MySQL操作
  3. 【OpenCV学习笔记4】OpenCV GUI 之VCWin32+OpenCV 实现细胞计数
  4. 解析远程服务器响应错误,远程服务器返回一个意外的响应:(400)错误的请求,WCF...
  5. linux 硬软链接区别
  6. Spring cloud和规则引擎urule整合代码
  7. 百度信息流投放效果不稳定,意图词要怎么筛选,先测试词包还是先测试创意好?
  8. 阿里云 DataV 产品简介
  9. 特征值+SVD分解+伪逆(广义逆)
  10. 山东大学计算机学院第二校园,山东大学本科生第二校园学习经历管理办法
  11. 家用无线路由器购买入门指南
  12. 爬虫-反爬二:有道词典js加密
  13. 【计网】(三)超网、路由、NAT协议
  14. 初读《学会提问》小感
  15. 优化问题-目标函数确定
  16. MYSQL8.0远程连接出现1045错误(Linux)
  17. Arch Linux 安装Google Earth
  18. android11 源码内置第三方输入法并默认选择
  19. 搭建个人博客 步骤详述(hexo +github)
  20. 第二章网页前端基础与HTTP协议

热门文章

  1. 8700K + z370 安装黑苹果 Mojave
  2. 机器学习二:K均值聚类算法(k-means clustering algorithm)
  3. 不删除磁盘内容,如何给C盘扩容
  4. 指针变量与数组的关系及什么是指针数组
  5. Java的指针碰撞简介
  6. 微信公众号迁移时同一个公司两个微信号公证问题
  7. 竹子的精神高山流水,赞美竹子的句子,竹子散文
  8. linux heartbeat rpm,Heartbeat 3.0.3 介绍及rpm
  9. 记2015年的腾讯校招经历——状态篇
  10. validation注解