邮件发送测试系统——“魔改”《计算机网络——自顶向下方法(第7版)》套接字编程作业3

简介

本人目前正在自学计算机网络相关知识,在练习第2章的套接字编程作业3时,觉得可以对原题进行一些改动,使得其功能更加灵活且对用户更加友好,可以很方便的用于测试某邮箱账号由用户本地到邮箱服务器的SMTP邮件发送服务是否可以正常使用。

实现的功能

1、输入被测试的邮箱账号、邮件服务器地址以及发送测试邮件的目的邮箱,使用被测试的邮箱向目的邮箱发送一封内容固定的纯文本测试邮件。
2、显示本机与邮件服务器之间的通讯过程(包括对登录过程中服务器发来的base64加密信息解密)
3、当用户名、密码及服务器地址输入错误时提示重输并重连

暂未实现的功能

1、自由编辑测试邮件的内容,以及发送含有HTML、图片或其他文件的非纯文本测试邮件
2、TLS/SSL协议支持
3、等待输入导致链接超时断线的重连功能

代码实现

from socket import socket, AF_INET, SOCK_STREAM
import base64

print("Welcome to SMTP mail test system v0.1!\nIt will use your mailbox to send a test mail to another mailbox!")

endmsg = "\r\n.\r\n"
exitmsg = "Thank you for using SMTP mail test system!"

# Choose a mail server (e.g. Google mail server) and call it mailserver
fromadd = input('Please enter your mailbox address: ')
frompass = input('Please enter your mailbox password: ')
mailserver = input('Please enter your SMTP server address: ')
toadd = input("Please enter the test mail's receiving address: ")
print('\r\n')

# Create socket called clientSocket and establish a TCP connection with mailserver
clientSocket = socket(AF_INET, SOCK_STREAM)
connect_smtp = False
while connect_smtp == False:
    try:
        clientSocket.connect((mailserver, 25))
        print('-> Create TCP connection with SMTP server: {}\r\n'.format(mailserver))
        recv = clientSocket.recv(1024).decode()
        print('<- '+ recv)
        if recv[:3] != '220':
            print('!  220 reply not received from server.\r\n')
        connect_smtp = True
    except:
        print('!  Your SMTP server or network connection is unavailable.\r\n')
        mailserver = input(
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值