0%

python 发送邮件

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()