论坛首页 编程语言技术论坛

20几行代码实现的一个可以接收邮件的smtpserver

浏览 3094 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-08   最后修改:2009-05-08

一个可以接收邮件的smtpserver. 收到的邮件被存为一个eml格式的文件,可以用outlook打开。
注意: 需要事先配置域名,指向这台机器所在的IP。免费的动态域名(如花生壳)也可。

#encoding:utf-8

from datetime import datetime
import asyncore
from smtpd import SMTPServer

class EmlServer(SMTPServer):
    no = 0
    def process_message(self, peer, mailfrom, rcpttos, data):
        filename = '%s-%d.eml' % (datetime.now().strftime('%Y%m%d%H%M%S'),self.no)
        f = open(filename, 'w')
        f.write(data)
        f.close
        print mailfrom,rcpttos,'%s saved.' % filename
        self.no += 1

def run():
    foo = EmlServer(('0.0.0.0', 25), None)
    try:
        asyncore.loop()
    except KeyboardInterrupt:
        pass

if __name__ == '__main__':
	run()

 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics