搭建简单的Smtp Server

有些时候需要构造一些特殊的邮件地址,而很多邮箱提供商不支持过长或者支持Unicode字符以及有特殊符号的邮箱用户名,这时候就需要自己搭建一个能收取邮件的服务器。市面上有很多大型的搭建邮件服务器的方案,比较复杂,不适合在实际安全检测中使用,于是自己用python脚本实现了一个简单的方案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.request.sendall("220 Salt Mail System\n")
self.request.recv(1024)
self.request.sendall("235 Authentication successful\n")
while True:
data = self.request.recv(1024).strip()
if data[:4].lower() == 'data':
self.request.sendall("354 End data with .\n")
content = ''
while True:
tmp = self.request.recv(1024).strip()
content += tmp
if tmp.split('\n')[-1] == '.':
break
print content
self.request.sendall("250 Mail OK\n")
self.request.close()
return
else:
print data
self.request.sendall("250 Mail OK\n")

if __name__ == "__main__":
HOST, PORT = "0.0.0.0", 25
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()

参考资料

http://xdxd.love/2016/10/17/unicode%E5%90%8C%E5%BD%A2%E5%AD%97%E5%BC%95%E8%B5%B7%E7%9A%84%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98/

分享到 评论