1.使用SMTP发送邮件
第1步:打开win 10的 telnet 客户端;开启邮箱的SMTP服务
第2步:打开命令窗口(cmd),输入 telnet
第3步:打开本地回显
第4步:连接到邮箱的SMTP服务器
Welcome to Microsoft Telnet Client
Escape Character is 'CTRL+]'
Microsoft Telnet> set localecho
Local echo on
Microsoft Telnet> open smtp.qq.com 25
Connecting To smtp.qq.com...
第5步:一系列的操作
- 打招呼
helo qq - 要求登录
auth login - 输入base64加密后的邮箱账号
- 输入base64加密后的授权码(授权码也可在qq邮箱的设置中找到)
- 登陆成功!
第六步:发送邮件
mail from:<address>rcpt to:<address>- 输入具体内容:
data
220 newxmesmtplogicsvrszc5.qq.com XMail Esmtp QQ Mail Server.
helo qq
502 Invalid input from 100.107.4.33 to newxmesmtplogicsvrszc5.qq.com
helo qq
250-newxmesmtplogicsvrszc5.qq.com-100.77.8.93-24972836
250-SIZE 73400320
250 OK
auth login
334 VXNlcm5hbWU6
***************(address after BASE64)
334 UGFzc3dvcmQ6
***************(password after BASE64)
235 Authentication successful
mail from:<1565977519@qq.com>
250 OK.
rcpt to:<r.cheng1018@outlook.com>
250 OK
data
354 End data with <CR><LF>.<CR><LF>.
From: keep@outlook.com
To: r.cheng1018@outlook.com
subject: send mail using SMTP service
Hello, U receive this email through SMTP service. This is just a test.
.
250 OK: queued as.
所接收到的消息:

可以看到我们更改了收件人所看到发送的邮箱账号。
实际的发送地址为:1565977519@qq.com,但是所收到的邮件中显示的发送方地址为:keep@outlook.com。(ps: 这个地址还有头像,看起来这个邮件地址已经被他人注册并使用过)
2. 简单的客户-服务器程序

TCP套接字编程
客户——服务器应用程序:客户向服务器发送一行数据,服务器将这行数据改为大小并回送给客户。
TCPClient
from socket import *
serverName = '192.168.1.6'
serverPort = 12000
clientSocket = socket(AF_INET,SOCK_STREAM)
#AF_INET:指示底层网络用的是IPv4
#SOCK_STREAM:表明其是一个TCP套接字
clientSocket.connect((serverName,serverPort))
#这行代码执行完之后,执行三次握手,并在客户端可服务器之间建立一个通道
sentence = input('Input lowercase sentance:')
clientSocket.send(sentence.encode())
#将sentence中的字节放到该TCP连接中去
modifiedSentence = clientSocket.recv(1024)
print('From server: ', modifiedSentence.decode())
clientSocket.close()
#关闭套接字
TCPServer
有欢迎套接字和连接套接字之分
# -*- coding: utf-8 -*-
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('',serverPort))
#serverSocket是欢迎套接字
serverSocket.listen(1)
#让服务器聆听客户的TCP请求,其中参数定义了请求连接的最大数
print('The server is ready to receive')
while True:
connectionSocket,addr = serverSocket.accept()
#当客户敲门时,程序为serverSocket调用accept()方法,这在服务器创建了一个
#名为connectionServer的新套接字,由这个客户专用
sentence = connectionSocket.recv(1024).decode()
capticalSentence = sentence.upper()
connectionSocket.send(capticalSentence.encode())
connectionSocket.close()
客户端运行结果

Pages: 1 2



Comments | NOTHING