import smtplib  # 发邮件的from email.mime.text import MIMEText  # 构造邮件内容的,对象

username = '18033551998@163.com'password = 'jiqiren123'msg = MIMEText('你好,快过年了,新年快乐!')  # 邮件内容msg['Subject'] = '新年快乐'  # 标题msg['From'] = '18033551998@163.com'  # 谁发的msg['To'] = 'wangsilei@126.com'  # 发给谁msg['Cc'] = '389688559@qq.com'  # 抄送给谁

smtp = smtplib.SMTP('smtp.163.com', port=25)  # 和邮箱服务器建立连接# smtp = smtplib.SMTP_SSL('smtp.11.com', port=465)  # 发件箱是qq邮箱用这个smtp.login(username, password)  # 登陆邮箱smtp.sendmail(username, 'wangsilei@126.com', msg.as_string())  # 谁发的 发给谁smtp.quit()print('发送成功!')
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipart

username = '18033551998@163.com'email_host = 'smtp.163.com'passwd = 'jiqiren123'recv = '389688559@qq.com,wangsilei@126.com'title = '邮件标题'content = '发送邮件测试'msg = MIMEMultipart()file = 'url编码.py'  # 附件的文件名att = MIMEText(open(file, encoding='utf-8').read())  # 构建一个附件的对象att["Content-Type"] = 'application/octet-stream'att["Content-Disposition"] = 'attachment; filename="%s"' % file  # 这个是在邮件中显示的附件名msg.attach(att)  # 把刚才创建好的附件,加到正文里面msg.attach(MIMEText('邮件的内容。。。。'))  # 邮件正文的内容msg['Subject'] = title  # 邮件主题msg['From'] = username  # 发送者账号msg['To'] = recv  # 接收者账号列表# smtp = smtplib.SMTP_SSL(email_host,port=456)#qq邮箱smtp = smtplib.SMTP(email_host, port=25)  # 其他邮箱smtp.login(username, passwd)smtp.sendmail(username, recv, msg.as_string())smtp.quit()

--------------------------------------------
import smtplibimport osfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport base64

# qq授权码# lfuhiziuplykbgdd# vavqwyhdvjdzcabhclass SendMail(object):    def __init__(self, username, passwd, recv, title, content,                 file=None, ssl=False,                 email_host='smtp.qq.com', port=25, ssl_port=465):        # :param username: 用户名        # :param passwd: 密码        # :param recv: 收件人,多个要传list ['a@qq.com','b@qq.com]        # :param title: 邮件标题        # :param content: 邮件正文        # :param file: 附件路径,如果不在当前目录下,要写绝对路径,默认没有附件        # :param ssl: 是否安全链接,默认为普通        # :param email_host: smtp服务器地址,默认为163服务器        # :param port: 非安全链接端口,默认为25        # :param ssl_port: 安全链接端口,默认为465        self.username = username  # 用户名        self.passwd = passwd  # 密码        self.recv = recv  # 收件人,多个要传list ['a@qq.com','b@qq.com]        self.title = title  # 邮件标题        self.content = content  # 邮件正文        self.file = file  # 附件路径,如果不在当前目录下,要写绝对路径        self.email_host = email_host  # smtp服务器地址        self.port = port  # 普通端口        self.ssl = ssl  # 是否安全链接        self.ssl_port = ssl_port  # 安全链接端口        # self.smtp = smtp

    def send_mail(self):        msg = MIMEMultipart()        # 发送内容的对象        if self.file:  # 处理附件的            file_name = os.path.split(self.file)[-1]  # 只取文件名,不取路径            try:                f = open(self.file, 'rb').read()            except Exception as e:                raise Exception('附件打不开!', e)            else:                att = MIMEText(f, "base64", "utf-8")                att["Content-Type"] = 'application/octet-stream'                # base64.b64encode(file_name.encode()).decode()                new_file_name = '=?utf-8?b?' + base64.b64encode(file_name.encode()).decode() + '?='                # 这里是处理文件名为中文名的,必须这么写                att["Content-Disposition"] = 'attachment; filename="%s"' % new_file_name                msg.attach(att)        msg.attach(MIMEText(self.content))  # 邮件正文的内容        msg['Subject'] = self.title  # 邮件主题        msg['From'] = self.username  # 发送者账号        msg['To'] = ','.join(self.recv)  # 接收者账号列表        if self.ssl:            self.smtp = smtplib.SMTP_SSL(self.email_host, port=self.ssl_port)        else:            self.smtp = smtplib.SMTP(self.email_host, port=self.port)        # 发送邮件服务器的对象        self.smtp.login(self.username, self.passwd)        try:            self.smtp.sendmail(self.username, self.recv, msg.as_string())            pass        except Exception as e:            print('出错了。。', e)        else:            print('发送成功!')        self.smtp.quit()

if __name__ == '__main__':    m = SendMail(        username='389688559@qq.com',        passwd='lfuhiziuplykbgdd',        recv=['wangsilei@126.com', '511402865@qq.com'],        title='过年好',        content='新年快乐',        file=r'C:\Users\Wang\Desktop\新年快乐.txt',        ssl=True,    )    m.send_mail()

转载于:https://www.cnblogs.com/wangsilei/p/8435973.html

Python--发送邮件相关推荐

  1. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本.富文本.HTML 等格式的邮件 本文将聊聊利用 Python ...

  2. Python发送邮件smtplib.SMTP各报错问题的解决方法

    Python发送邮件smtplib.SMTP各报错问题的解决方法 参考文章: (1)Python发送邮件smtplib.SMTP各报错问题的解决方法 (2)https://www.cnblogs.co ...

  3. 用Python发送邮件[zt]

    用Python发送邮件 服务器需要周期性的检查邮件队列,然后通过smtp服务器发送出去,就网上搜了搜,然后修改了加工了一下,写了一个邮件发送的简单模块 两个文件 config.py:配置信息 send ...

  4. python发送邮件及附件

    今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...

  5. Python发送邮件以及对其封装

    Python发送邮件分为四步 连接到smtp服务器 登陆smtp服务器 准备邮件 发送邮件 导入所需要的包 import smtplib from email.mime.text import MIM ...

  6. python 发送邮件connect none_Python发送邮件功能示例【使用QQ邮箱】

    本文实例讲述了Python发送邮件功能.分享给大家供大家参考,具体如下: 这里以QQ邮箱为例说明 登录邮箱点账号 开启smtp 开启时会要求你发送一条短信,发送完成后点已发送. 就有授权码了 代码如下 ...

  7. python 发送邮件的两种方式【终极篇】

    python 发送邮件的两种方式[终极篇] 一,利用python自带的库 smtplib简单高效 from email.mime.multipart import MIMEMultipart from ...

  8. python自动截图发送邮件_PhantomJS按尺寸截取页面,并用python发送邮件

    前言:当前有个任务是要把几个网站的日志返回状态码进行汇总,用饼图展示,并每天发送邮件. 一.分析问题 画出饼图,这个我用kibana给画出来了,下面不做讲解: 截取饼图,因为kibana是用js展示出 ...

  9. 最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例 ...

  10. flask-mail异步发送邮件_使用 python 发送邮件

    使用 python 发送邮件,这个也没啥讲的,分享三种方式发送邮件,最后一种三行代码就可以发送邮件,是不是很爽啊,话不多说,直接上代码 第一种:正常发送邮件,也就是同步发送邮件 #!/usr/bin/ ...

最新文章

  1. 中国AI研究新突破,周六见!
  2. Windows系统进程全解剖
  3. java io复用_学习Java编程-IO复用
  4. Convex Hull (ACM-ICPC 2018 沈阳赛区网络预赛) 存个公式
  5. 干,认识Audio框架还因此发现一个雷
  6. java程序中验证框架四规则(初级知识)
  7. win10 自动修复不了无限循环的问题
  8. 基于MATLAB的银行卡号识别算法研究
  9. 使用abd工具查看安卓设备cpu处理器是32位或64位
  10. 安卓开发使用ttf文字_Android应用使用自定义字体
  11. 高德地图打包后不能使用,高德导航View不显示,高德地图导航组件黑屏的问题;
  12. 概率论与数理统计学习笔记——6.2统计量
  13. C++的重载(overload)与重写(override)
  14. 14期《未来,我来》1月刊
  15. 一群阿里码农的公益实践:用技术禁毒、打拐
  16. 百度爱采购开户及流程
  17. win10台式机屏幕亮度无法调节
  18. linux嵌入式系统开发心得,嵌入式学习牛人心得
  19. 如何用php农场项目,2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统...
  20. 国耀明医互联网医院:人体必需营养素维持平衡是关键

热门文章

  1. linux的NetworkManager服务(转)
  2. 《Visual Studio.NET Tips and Tricks》第一章的翻译
  3. [导入]Visual Studio 2005 Web Deployment Projects版本不同引发的问题
  4. 在storm中使用流
  5. Java输入/输出流体系中常用的流分类
  6. 服务器不稳定 如何让百度重新收录网站,教你如何让百度重新收录首页
  7. jsoup 去除html标签,如何使用jsoup取消注释html标签
  8. 远程主机http协议版本信息泄漏_Web基础之http协议
  9. B端产品经理要掌握的基本功
  10. 2021年Q1移动互联网行业数据研究报告