我在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)我认为可以通过在Ubuntu中安装postfix来安装EHLO.我这样做了,并进行了相同的测试调用,但后来因另一个错误而停止:
Client: RCPT TO: XXX@YYY.com
Server: 554 5.7.1 : 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.使用异步
如果有任何关于如何使用python库以简单易用的方式实现此目标的想法,那就太好了!
干杯
??亚历克斯