1 python 有个模块 smtpd ,用来作为smtp服务器,可以自己实现邮件服务器smtp功能。
这个模块有4个class:
smtpd.SMTPServer : 需要实现 process_message函数,可以自己定义处理消息的内容,再发送给相应的其他邮件服务器,不过在windows下实验,实际没有发送邮件,只是个空smtp服务器。
smtpd.PureProxy:作为纯代理转发 ,可以发送。用wireshark可见实际发送数据给外部mx 。
smtpd.MailmanProxy: mailman 的代理转发
smtpd.DebuggingServer: 主要做调试用。
2 smtp用来作为客户端发送邮件,和foxmail等功能类似。
一般免费smtp都需要验证才能发送,也不支持relay(转发) .
所以只能自己投递给邮件地址的mx服务器。
使用nslookup ,设置 set type=mx ,可以查询到mx服务器
这时候的mx服务器是不需要验证的。如下代码只能发送给后缀是qq.com
的邮箱 。不过也有发送份数限制。如果通过代理服务器绕过ip验证,理论上应该可以无限发送邮件。
代码:
import smtpd
import asyncore
print ‘proxy start at 25 …’
server = smtpd.PureProxy((‘127.0.0.1’, 25), (‘mx1.qq.com’, 25))
asyncore.loop()