我需要一个非常简单的守护程序脚本,用于接收发送到某个域名的所有电子邮件并将它们转发到脚本。我知道有 exim、qmail 或其他软件可以执行此操作,但我不想安装会影响主机性能的大型软件。
我有指向主机的域的 MX 记录;现在我需要一些守护进程侦听端口 25 并正确应答邮件标准通信(HELO 等),然后将邮件交给脚本。
我怎样才能做到这一点?
编辑:domain.com 将直接传入,我不需要该域拥有 POP 帐户或发送电子邮件;该域只会收到发送至 的电子邮件*@domain.com
,我希望将所有电子邮件重定向到脚本。
如果可能的话我希望用 C 或 Perl 语言
答案1
Python标准库包含smtpd
实现smtp服务器协议的模块。你应该能够用几行 python 来做你想做的事情。
以下是一些示例代码:
import smtpd
import asyncore
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(('127.0.0.1', 25), None)
asyncore.loop()