gpt4 book ai didi

python - 在 python : 中使用 SMTPServer 接收电子邮件

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:06 25 4
gpt4 key购买 nike

我有一个 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”未执行因此服务器无法正确回复以接收更多数据/与发送电子邮件的计算机(我假设是客户端)通信。

难道不应该首先在 Ubuntu 安装中实现像 EHLO 这样的基本功能吗?为什么没有实现?

(2) 我想EHLO 可以通过在Ubuntu 中安装postfix 来安装。我这样做了,同样的测试调用继续进行,但后来因不同的错误停止了:

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.无需安装postfix2.配合asyncore的使用

如果有任何关于如何使用 python 库以简单易行的方式实现这一点的想法,那就太好了!

干杯 亚历克斯

最佳答案

1) Postfix 是一个SMTP 服务器,它与python 的smtpd EHLO 实现无关。如果您想要自定义 SMTP 服务器,则不需要 postfix,因此请随意将其删除。

2) EHLO是一个ESMTP命令,不是SMTP,标准的smtpd python模块实现了 SMTP,因此它没有 EHLO 实现。

关于python - 在 python : 中使用 SMTPServer 接收电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com