Python发邮件详解

一、利用163的smtp发送邮件

import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# 第三方SMTP服务mail_server = 'smtp.163.com'mail_port = 587mail_user = 'daw***an@163.com'mail_pass = '*********' # 这里要使用授权码,而不是邮箱密码sender = 'daw***an@163.com'receivers = ['daw***an@163.com','dav***an@live.com','dav***an@qq.com']# 需要定义三个参数# 第一个参数为文本内容# 第二个参数plain设置文本格式# 第三个参数utf-8设置编码格式message = MIMEText("Python发送邮件", "plain", "utf-8")message['From'] = sender # 由于邮箱安全认证,需要把发件人放到message['From'], 否由会”出现554 SPM错误“message['To'] = sender  # 由于邮箱安全认证,需要把发件人放到message['To'], 否由会”出现554 SPM错误“subject = 'Python SMTP发送邮件测试'message['Subject'] = Header(subject, 'utf-8')try:    mailserver = smtplib.SMTP_SSL(mail_host, 587)     mailserver.login(mail_user, mail_pass)    mailserver.sendmail(sender, receivers, message.as_string())    mailserver.quit()    print('邮件发送成功')except smtplib.SMTPException:    print("发送邮件失败!")
  • 163邮箱用户smtp和获取授权码的方法如下图所示:

163邮箱用户smtp和获取授权码

  • 发送网邮件效果:

发送邮件效果图

二、封装通用发邮件工具类

import osimport randomimport smtplibimport timefrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartclass EmailUtils(object):    def __init__(self, sender, receivers, username, password, smtp_server='smtp.qq.com', smtp_port=465):        self.sender = sender        self.receivers = receivers        self.username = username        self.password = password        self.smtp_server=smtp_server        self.smtp_port = smtp_port        # 连接服务器        self.connect_server()    def create_email(self, title):        # 创建一个带附件的实例        message = MIMEMultipart()        message['From'] = self.sender        message['To'] = self.receivers        message['Subject'] = Header(title, 'utf-8')        self.message = message    # 附件内容,如文本文件,图片文件等    def email_appendix(self, file_path):        att1 = MIMEText(open(file_path, 'rb').read(), 'base64', 'utf-8')        # 指定头部信息        att1['Content-Type'] = 'application/octet-stream' #内容为二进制流        att1['Content-Disposition'] = 'attachment; filename="%s"'%(os.path.basename(file_path))        self.message.attach(att1)    def email_content(self, content, content_type='plain'):        # 邮件正文内容        # plain正常文本内容,html可以发送html格式内容        self.message.attach(MIMEText(content, content_type, 'utf-8'))    def connect_server(self):        # 连接邮件的服务器        mailserver = smtplib.SMTP_SSL(self.smtp_server, self.smtp_port)        try:            # 连接qq的smtp服务器            mailserver.login(self.username, self.password)        except smtplib.SMTPAuthenticationError:            print('请检查用户名和授权码是否正确')            return        else:            self.mailserver = mailserver    def send_email(self):        # 发送一封邮件        self.mailserver.sendmail(self.sender, self.receivers, self.message.as_string())        print('发送邮件成功!')        def __del__(self):        self.mailserver.close()if __name__ == "__main__":# 此处的密码为授权码    mail = EmailUtils(sender='dav***an@qq.com', receivers='dav***an@live.com', username='dav***an@qq.com', password='**********')    mail.create_email('创建一封测试邮件')    # 添加邮件内容    mail.email_content('您好!欢迎阅读我的内容')    # 添加附件     mail.email_appendix('background.jpg')    # 发送邮件    mail.send_email()    
  • QQ邮箱获取授权码方法

QQ邮箱获取授权码

邮件效果

python凯撒密码详解_四十八、Python用smtp发邮件详解(163和QQ邮箱)相关推荐

  1. python凯撒密码实现_密码:凯撒密码及其Python实现

    python凯撒密码实现 Before we start let's some basic terminology... 在开始之前,让我们先介绍一些基本术语... The art and scien ...

  2. Python凯撒密码解密

    Python 凯撒密码解密 简介 加密 解密 python程序. 其他参考文章 简介 在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人 ...

  3. Python凯撒密码

    Python凯撒密码 设置变量储存字母字符串 text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 循环设置 while True ...

  4. python凯撒密码详解_Python基础题目集--课堂案例

    这些案例均为在校期间学习<python基础编程>课程的案例,适合初学者练手~ 1.输入分数,返回等级 ''' 分数区间为0~100,等级:A(>=90).B(>=80).C(& ...

  5. 运用python编写凯撒密码并实现_凯撒密码实现英文短句的加解密

    1. 将"We are students."这个英文词句用k=4的凯萨密码翻译成密码 1. 恺撒密码, 作为一种最为古老的对称加密体制,他的基本思想是: 通过把字母移动一定的位数来 ...

  6. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  7. python123 凯撒密码,Python:Caesar代码,python,凯撒,密码

    题目来自:python123.io 题目描述 恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的 ...

  8. python凯撒密码e_凯撒密码python实现

    写在前面的话 凯撒密码原理比较简单. 原理 在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...

  9. python 凯撒密码加密和暴力破解

    def decrypt(message):#凯撒密码破解SYMBOLS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'#循环遍历所有可能的KEYfor key in range(len(SY ...

最新文章

  1. Swift学习:自动引用计数
  2. java某人有5张三分_能不能帮我做一下题目啊,JAVA的,请求高手解答!
  3. spring boot 邮件端口_不会吧,SpringBoot还能发送邮件发送邮件?快来看看如何操作吧
  4. PHP与C sharp互解加密算法
  5. 将Array、Dictionary等集合类的序列化和反序列化
  6. Android仿探探卡片拖拽,Vue 仿探探拖拽卡片的效果
  7. 关于比较器Comparator排序时间的问题
  8. C语言重难点:运算符优先级
  9. “对症下药”:医疗行业如何实现文件分发
  10. c语言 char * 遍历,使用指针遍历char数组
  11. 小米手机显示无法连接服务器错误代码,来电转接出现连接问题或MMI码无效的解决方法...
  12. Python把视频转为 gif 图片——视频制作利器:MoviePy
  13. ChatAI==ChatGPT(无需翻墙同等使用chat)
  14. QuickBooks 2018 For Dummies 免积分下载
  15. 转:Dictionaryint,string怎么获取它的值的集合?急!急!急!
  16. 屁股决定脑袋,思想决定高度
  17. Python pdf转csv
  18. i710700和i510400f哪个好
  19. 坚果pro2s android 8,坚果Pro2s和小米8se哪个好?坚果Pro2s对比小米8se区别评测
  20. [激光器原理与应用-3]:激光器的国外品牌

热门文章

  1. 关于ubuntu18.04 的碎碎念
  2. Maven引入依赖后自动下载并关联源码 Source
  3. selenium的常见方法及使用
  4. Swift学习之闭包
  5. LightOJ 1140 - How Many Zeroes? 数位DP
  6. 公司绝对不会告诉你的潜规则 - 看到职场如战场了吧
  7. 基于Android的校园跑腿系统
  8. PrinterWriter 类入门
  9. 基于网页自动化Selenium IDE的安装与部署 图书馆选座、网站防休眠、自动点击等
  10. wireshark常用过滤条件