python3利用smtplib发送、抄送邮件并附带附件

1. 导包

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import logging

2. 定义发送邮件函数

def send_mail(MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, accept_list, Cc_list, SUBJECT, text, file_name):

	message = MIMEMultipart()
message['From'] = MAIL_USERNAME # 发件人
message['To'] = ";".join(accept_list) # 收件人,将列表转换为字符串
message["Cc"] = ";".join(Cc_list) # 抄送人,将列表转换为字符串
message['Subject'] = SUBJECT # 邮件主题
message.attach(MIMEText(text, 'plain', 'utf-8')) # 格式化邮件内容,编码为utf-8 att1 = MIMEText(open(file_name, 'rb').read(), 'base64', 'utf-8') # 添加附件
att1["Content-Type"] = 'application/octet-stream' # 设置类型
att1["Content-Disposition"] = 'attachment; filename="{0}"'.format("test.xlsx") # 设置邮件用现实的名称
message.attach(att1) try:
mailServer = smtplib.SMTP(MAIL_SERVER, 25) # 25为端口号(邮件)
# 登录邮箱
mailServer.login(MAIL_USERNAME, MAIL_PASSWORD) # 需要的是,邮箱的地址和授权密码
# 发送文件
mailServer.sendmail(MAIL_USERNAME, accept_list + Cc_list, message.as_string())
mailServer.close() # 关闭连接
return True
except Exception as e:
# logging.debug(e)
print(e)
return False

3. 调用发送邮件函数

def main():

	MAIL_SERVER = 'smtp.qq.com'  # smtp服务器
MAIL_USERNAME = '*****@qq.com' # 发件人
MAIL_PASSWORD = '**********' # 发送者授权码
accept_list = ['****@163.com', '*****@qq.com'] # 收件人
Cc_list = ['*****@qq.com', '*****@qq.com'] # 抄送人
SUBJECT = "send mail test" # 主题
text = "test page" # 内容
file_name = "a.xlsx" # 上传附件名称(当前路径) if send_mail(MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, accept_list, Cc_list, SUBJECT, text, file_name):
logging.debug("Send mail succed!") else:
logging.debug("Send mail failed") if __name__ == '__main__':
main()

python3利用smtplib发送、抄送邮件并附带附件的更多相关文章

  1. JavaMail(二):利用JavaMail发送复杂邮件

    上一篇文章我们学习了利用JavaMail发送简单邮件,这篇文章我们利用JavaMail发送稍微复杂一点的邮件(包含文本.图片.附件).这里只贴出核心代码,其余代码可参考JavaMail(一):利用Ja ...

  2. 【ABAP系列】SAP ABAP实现发送外部邮件(添加附件)功能

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP实现发送外部邮件(添 ...

  3. 接口测试基础——第一篇smtplib发送文字邮件

    现在我们就开始进入接口测试框架的知识准备阶段,今天是第一篇,很简单的,就是发送纯文字的电子邮件,会的童鞋可以忽略,不会的就多敲几遍,直到自己能敲出来为止~~ # coding: utf-8 impor ...

  4. 如何利用sendmail发送外部邮件?

    在写监控脚本时,为了更好的监控服务器性能,如磁盘空间.系统负载等,有必要在系统出现瓶颈时,及时向管理员进行报告.在这里通常采用邮件报警,同时,邮件设置为收到邮件,即向指定手机号码发送短信.这样可以实现 ...

  5. JavaMail(一):利用JavaMail发送简单邮件

    JavaMail,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.但它并没有包含在JDK中,要使用JavaMail首先要下载ja ...

  6. 利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)

    Spring提供了发送电子邮件的支持,可以发送普通邮件.带附件邮件.HTML格式邮件,甚至还可以使用Velocity模板定制化邮件内容. 一.引入相关的库 1 2 3 4 5 6 7 8 9 10 1 ...

  7. zabbix邮件内容乱码与邮件内容为附件解决办法

    在zabbix的实际使用过程中,在收到邮件预警的时候,我们会发现邮件内容是乱码的,在手机端收到的是附件,而且附件下载后的文件类型是打不开的.这样我们不知道我们是哪个服务器的哪项服务出了问题,接下来我们 ...

  8. python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

    python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPA ...

  9. python3:利用SMTP协议发送QQ邮件+附件

    转载请表明出处:https://www.cnblogs.com/shapeL/p/9115887.html 1.发送QQ邮件,首先必须知道QQ邮箱的SMTP服务器 http://service.mai ...

  10. Python_使用smtplib+email完成邮件发送

    本文以第三方QQ邮箱服务器演示如何使用python的smtplib+email完成邮箱发送功能 一.设置开启SMTP服务并获取授权码 开启QQ邮箱SMTP服务 开启的最后一步是发送短信验证,获取 au ...

随机推荐

  1. allure的安装与配置

    一.安装配置JDK 说明:以win10系统为例 1.Oracle官网下载JDK:https://www.oracle.com/java/technologies/downloads/ 请下载安装JDK ...

  2. java中基本数据类型和包装数据类型

    基本数据类型和包装数据类型在 Java 中有着重要的区别和联系,对于 Java 程序员来说,熟悉这两种数据类型的特点和使用方法是非常必要的. 基本数据类型 Java 中的基本数据类型一共有 8 种,分 ...

  3. 1 大数据实战系列-spark+hadoop集成环境搭建

    1 准备环境 192.168.0.251 shulaibao1 192.168.0.252 shulaibao2 hadoop-2.8.0-bin spark-2.1.1-bin-hadoop2.7  ...

  4. AI室内设计:提升效率、消除沟通障碍,满足客户需求

    前言 免费AI绘图工具:https://www.topgpt.one 随着人工智能(AI)技术的不断发展,室内设计行业也开始受益于这一技术的应用.其中,AI绘画工具在室内设计中的应用正日益受到关注.这 ...

  5. Ui2Code+ChatGPT助力低代码搭建

    前言 低代码开发平台(LCDP),是低代码或无代码通过快速搭建配置的方式完成一个应用程序的开发与上线,可视化低代码就是可视化的DSL,它的优点更多的是来源可视化,相对的,它的局限性也还是来源于可视化, ...

  6. 懒人的百宝箱「GitHub 热点速览」

    本周 GitHub Trending 除了 lazydocker 之外,还有多个 lazy 项目上线,比如大家熟悉的 lazyvim,可见,这个世界对懒人还是很友好的.除此之外,主打一个密码免输入,绕 ...

  7. Linux 软件包:kernel*

    运行命令: # rpm -qa | grep $(uname -r) | while read pkgname ; do echo "### $pkgname ###" ; rpm ...

  8. Linux - vim文件编辑器

    vim 普通模式下 yy : 复制当前光标所在行 p : 粘贴 数字+yy :复制多行 dd :删除当前行 数字+dd :删除多行 u : 回滚 y$ : 光标到行结尾 y^ : 行开头到光标位置 y ...

  9. don't be shy to use reshape

    don't be shy to use reshape

  10. [linux]frp内网穿透

    前言 假设有如下网络拓扑 A可以访问B,但B无法访问A.A和B都能访问C.如果B需要访问A的8000端口,一般有如下方法: 网络管理员做路由转发.硬件层面网络转发,性能一般来说更好,但需要熟悉路由配置 ...