`
gumuzhiyu
  • 浏览: 37755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python网络编程基础笔记-使用TLS加密email

 
阅读更多
# from: http://blog.chinaunix.net/space.php?uid=199788&do=blog&cuid=422492

# -*- coding:cp936 -*-
#!/usr/bin/env python
import sys,smtplib
"""
使用smtp.sina.com作为邮件发送服务器
1.使用TLS进行加密
2.使用ehlo,如果服务器不支持,则无法使用TLS
3.调用starttls
4.再次调用ehlo
5.像往常一样发送邮件
"""
server = "smtp.sina.com"
fromaddr= "jcodeer@sina.com"
toaddr = "jcodeer@126.com"

msg = """
to:%s
from:%s
Hello,I am smtp server
""" %(toaddr,fromaddr)

s = smtplib.SMTP(server)
# 进行认证,通过后可以发送邮件
s.login("jcodeer","邮箱密码")
"""
ehlo返回值:
code:来自服务器的相应码。
string:这个响应码所对应的字符串描述。
"""
code = s.ehlo()[0]
usesesmtp = 1
if not (200 <= code <= 299):
    usesesmtp = 0
    """
    code和string与ehlo含义相同。
    """
    code = s.helo()[0]
    if not (200 <= code <= 299):
        raise SMTPHeloError(code,resp)
if usesesmtp and s.has_extn("tls"):
    """支持tls,则调用starttls(3)"""
    print ("starttls")
    s.starttls()
    """再次调用ehlo(4)"""
    code = s.ehlo()[0]
    if not (200 <= code <= 299):
        print("Could not EHLO after starttls")
        sys.exit(5)
    print("using tls connection")
else:
    """不支持tls,使用正常连接(2)"""
    print("server does not support tls,using normal connection")
"""发送邮件(5)"""
s.sendmail(fromaddr,toaddr,msg)
分享到:
评论

相关推荐

    python爬虫个人笔记记录

    1. HTTP与HTTPS:HTTP是互联网上应用最为广泛的一种网络协议,而HTTPS是在HTTP的基础上增加了SSL/TLS加密层,提供了更高的安全性。了解HTTP的请求方法(GET、POST等)和响应状态码对于爬虫编写至关重要。 2. HTML与...

    Python常见的各种加密解密算法.zip

    Python作为一种强大且灵活的编程语言,提供了丰富的库和模块来实现各种加密解密算法。以下将详细介绍Python中常见的几种加密解密算法及其应用。 1. 对称加密:这种类型的加密算法使用相同的密钥进行加密和解密,...

    Python笔记 之 cx_oracle和smtp模块简单应用

    server.starttls() # 启用TLS加密 server.login(from_email, password) server.sendmail(from_email, to_email, msg.as_string()) server.quit() print("邮件发送成功") except Exception as e: print("邮件...

    《Python Standard Library》学习笔记(原书为 Python2.X 版,在学习的过程中,用 Py.zip

    Python标准库是Python编程语言的核心组成部分,包含了大量预先编写的模块和函数,涵盖了网络通信、文件处理、系统接口、数据库接口、加密、图形系统等多个领域。对于任何Python开发者来说,熟悉并掌握Python标准库是...

    lecture-python.notebooks:https的笔记本

    1. **SSL/TLS协议基础**:了解SSL/TLS的工作流程,包括握手过程、加密算法选择和证书验证。 2. **Python中的SSL/TLS**:使用`ssl`模块创建SSL上下文,设置证书和密钥,以及启用特定的安全选项。 3. **HTTPS请求**...

    品优购电商项目资料(案例笔记素材)

    - SSL/TLS加密:确保数据传输过程中的安全,防止信息被窃取。 - 用户认证与授权:OAuth 2.0或JWT实现用户身份验证,防止非法访问。 - 防SQL注入和XSS攻击:利用参数化查询和输入验证保护系统免受常见Web攻击。 5...

    ActiveMQ学习笔记之一--ActiveMQ下载

    同时,它还提供了安全特性,如SSL/TLS加密、用户权限控制和认证机制。 总结,ActiveMQ是企业级消息传递的可靠工具,其易用性、灵活性和丰富的特性使其在各种复杂环境中都能发挥出色。通过下载、安装和配置,你将...

    云笔记服务端

    9. **安全性**:服务端应确保数据传输的安全,通过SSL/TLS加密通信,防止中间人攻击。同时,需要防止SQL注入、XSS攻击等网络安全问题。 10. **可扩展性**:随着用户数量的增长,服务端需要具备水平扩展的能力,可能...

    程序员面试宝典笔记总结

    3. **网络安全**:了解SSL/TLS加密协议,以及常见的攻击方式,如DDoS、SQL注入等。 五、数据库 1. **SQL基础**:掌握SQL语句,如SELECT、INSERT、UPDATE、DELETE,以及JOIN操作。 2. **索引与优化**:理解B树和B+...

    07026网络应用程序设计复习资料.zip

    5. **网络编程**:包括套接字编程,理解客户端-服务器模型,以及如何实现多线程、异步处理以提高网络应用性能。 6. **大纲要求**:这部分会根据考试大纲,列出重点学习内容,指导考生有针对性地复习,可能包括必读...

    爬虫笔记!!!!!!!!!!!!

    HTTP是互联网上应用最为广泛的一种网络协议,而HTTPS是在HTTP的基础上加入了SSL/TLS加密层,以确保数据传输的安全性。爬虫需要模拟浏览器发送请求(GET和POST等)并接收服务器返回的响应,理解请求头、Cookie和...

    MySQL笔记合集.pdf

    4. 安全性高:MySQL 的安全性非常高,支持多种安全机制,例如SSL/TLS加密、身份验证等。 5. 支持多种编程语言:MySQL 支持多种编程语言,例如Java、Python、PHP、C++等。 MySQL 的应用非常广泛,包括: 1. 网站...

    ftp相关学习笔记(外文)

    这篇学习笔记主要探讨了FTP的相关知识,包括其工作原理、使用场景、工具以及如何通过编程实现FTP客户端。 FTP基于TCP/IP协议族,它定义了两台计算机之间交换文件的格式和命令。FTP协议分为两个通道:控制通道和数据...

    软件设计师备考笔记.zip

    编码实现是将设计转化为实际代码的过程,要求熟悉至少一种或多种编程语言,如Java、Python或C++,并掌握良好的编程规范和设计模式。此外,软件设计师还需要了解软件工程中的版本控制工具,如Git,以及项目管理工具,...

    redis6.0笔记代码资料.zip

    代码部分可能包含各种操作 Redis 的示例,例如使用不同编程语言(如Python、Java、Node.js)连接Redis、执行基本操作、实现复杂功能(如发布/订阅、事务、lua脚本)等。 资料部分可能包括官方文档、社区文章、教程...

    使用systemd生成JupyterHub单用户笔记本服务器.zip

    在生产环境中,确保你的JupyterHub服务器配置了SSL/TLS加密,以保护数据传输的安全。同时,限制对外暴露的端口,并使用防火墙规则(如`iptables`或`ufw`)来加强服务器安全。 6. **监控和日志**: `systemd` 提供...

    OneNET-Mini板

    6. **安全与加密**:学习物联网设备的安全措施,如SSL/TLS加密、数据安全存储等。 7. **云服务集成**:掌握如何将设备数据发送至云端,并通过云服务进行数据分析和可视化。 8. **事件驱动编程**:理解如何使用事件...

    freeswitch笔记.7z

    学习FreeSWITCH,需要理解基本的VoIP概念,了解TCP/IP网络,以及一定的编程基础。同时,熟悉XML语法也有助于更好地管理和定制FreeSWITCH的配置。实际操作中,可以先搭建一个本地环境,通过CLI尝试发送命令,观察系统...

    RabbitMQ学习 笔记

    - 配置 SSL/TLS 加密。 4. **集群部署:** - 设置集群节点。 - 负载均衡策略。 - 故障恢复机制。 ### 六、总结 通过以上介绍,我们可以了解到 RabbitMQ 不仅是一个强大的消息队列解决方案,还为开发者提供了...

    Freeswitch学习笔记

    6. **安全与认证**:Freeswitch提供了安全机制,包括TLS加密、SASL认证等,以保护通信数据的安全。 7. **监控与日志**:监控Freeswitch的运行状态并记录日志对于故障排查和性能优化至关重要。了解如何配置和解读...

Global site tag (gtag.js) - Google Analytics