我在Linux下一个小应用程序收到一封电子邮件,使用smtpd.SMTPServer的。 这里是小测试代码:
class CustomSMTPServer(smtpd.SMTPServer):
def process_message(self, peer, mailfrom, rcpttos, data):
print 'Receiving message from:', peer
print 'Message addressed from:', mailfrom
print 'Message addressed to :', rcpttos
print 'Message length :', len(data)
return
server = CustomSMTPServer(('0.0.0.0', 25), None)
asyncore.loop()
我有以下问题:(1)当使用这一段代码,发送电子邮件的计算机得到以下信息:502错误:命令“EHLO”未实现这样服务器不能正确答复接收进一步数据/与电子邮件通信 - 发送计算机(我假定是客户端)。
如果不喜欢EHLO这样一个基本的东西在Ubuntu的安装来实现摆在首位? 为什么不执行?
(2)我想,EHLO可以通过在Ubuntu安装后缀来安装。 我这样做,和相同的测试呼叫继续,但后来与其他错误而停止:
Client: RCPT TO: XXX@YYY.com
Server: 554 5.7.1 <XXX@YYY>: Relay access denied
(3)在稍后的时间,做一些更多的其他测试之后,我从测试代码本身的错误:
error: [Errno 98] Address already in use
事实证明,所使用的IP地址已经在使用中如能有可见
netstat -lnpt
它的情况是正在运行的后缀。 停止postfix服务后的地址是不再使用,但当然是回到问题#1:
502 Error: command "EHLO" not implemented
我想能够使用SMTPSERVER接收电子邮件1.无需安装后缀2.使用asyncore的
如果有,如何使用Python库,使之成为可能容易和简单的方式任何想法,这将是伟大的!
干杯亚历克斯