# 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)
分享到:
相关推荐
1. HTTP与HTTPS:HTTP是互联网上应用最为广泛的一种网络协议,而HTTPS是在HTTP的基础上增加了SSL/TLS加密层,提供了更高的安全性。了解HTTP的请求方法(GET、POST等)和响应状态码对于爬虫编写至关重要。 2. HTML与...
Python作为一种强大且灵活的编程语言,提供了丰富的库和模块来实现各种加密解密算法。以下将详细介绍Python中常见的几种加密解密算法及其应用。 1. 对称加密:这种类型的加密算法使用相同的密钥进行加密和解密,...
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标准库是Python编程语言的核心组成部分,包含了大量预先编写的模块和函数,涵盖了网络通信、文件处理、系统接口、数据库接口、加密、图形系统等多个领域。对于任何Python开发者来说,熟悉并掌握Python标准库是...
1. **SSL/TLS协议基础**:了解SSL/TLS的工作流程,包括握手过程、加密算法选择和证书验证。 2. **Python中的SSL/TLS**:使用`ssl`模块创建SSL上下文,设置证书和密钥,以及启用特定的安全选项。 3. **HTTPS请求**...
- SSL/TLS加密:确保数据传输过程中的安全,防止信息被窃取。 - 用户认证与授权:OAuth 2.0或JWT实现用户身份验证,防止非法访问。 - 防SQL注入和XSS攻击:利用参数化查询和输入验证保护系统免受常见Web攻击。 5...
同时,它还提供了安全特性,如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+...
5. **网络编程**:包括套接字编程,理解客户端-服务器模型,以及如何实现多线程、异步处理以提高网络应用性能。 6. **大纲要求**:这部分会根据考试大纲,列出重点学习内容,指导考生有针对性地复习,可能包括必读...
HTTP是互联网上应用最为广泛的一种网络协议,而HTTPS是在HTTP的基础上加入了SSL/TLS加密层,以确保数据传输的安全性。爬虫需要模拟浏览器发送请求(GET和POST等)并接收服务器返回的响应,理解请求头、Cookie和...
4. 安全性高:MySQL 的安全性非常高,支持多种安全机制,例如SSL/TLS加密、身份验证等。 5. 支持多种编程语言:MySQL 支持多种编程语言,例如Java、Python、PHP、C++等。 MySQL 的应用非常广泛,包括: 1. 网站...
这篇学习笔记主要探讨了FTP的相关知识,包括其工作原理、使用场景、工具以及如何通过编程实现FTP客户端。 FTP基于TCP/IP协议族,它定义了两台计算机之间交换文件的格式和命令。FTP协议分为两个通道:控制通道和数据...
编码实现是将设计转化为实际代码的过程,要求熟悉至少一种或多种编程语言,如Java、Python或C++,并掌握良好的编程规范和设计模式。此外,软件设计师还需要了解软件工程中的版本控制工具,如Git,以及项目管理工具,...
代码部分可能包含各种操作 Redis 的示例,例如使用不同编程语言(如Python、Java、Node.js)连接Redis、执行基本操作、实现复杂功能(如发布/订阅、事务、lua脚本)等。 资料部分可能包括官方文档、社区文章、教程...
在生产环境中,确保你的JupyterHub服务器配置了SSL/TLS加密,以保护数据传输的安全。同时,限制对外暴露的端口,并使用防火墙规则(如`iptables`或`ufw`)来加强服务器安全。 6. **监控和日志**: `systemd` 提供...
6. **安全与加密**:学习物联网设备的安全措施,如SSL/TLS加密、数据安全存储等。 7. **云服务集成**:掌握如何将设备数据发送至云端,并通过云服务进行数据分析和可视化。 8. **事件驱动编程**:理解如何使用事件...
学习FreeSWITCH,需要理解基本的VoIP概念,了解TCP/IP网络,以及一定的编程基础。同时,熟悉XML语法也有助于更好地管理和定制FreeSWITCH的配置。实际操作中,可以先搭建一个本地环境,通过CLI尝试发送命令,观察系统...
- 配置 SSL/TLS 加密。 4. **集群部署:** - 设置集群节点。 - 负载均衡策略。 - 故障恢复机制。 ### 六、总结 通过以上介绍,我们可以了解到 RabbitMQ 不仅是一个强大的消息队列解决方案,还为开发者提供了...
6. **安全与认证**:Freeswitch提供了安全机制,包括TLS加密、SASL认证等,以保护通信数据的安全。 7. **监控与日志**:监控Freeswitch的运行状态并记录日志对于故障排查和性能优化至关重要。了解如何配置和解读...