我想编写自己的 miter,但遇到了问题。我已经安装了 postfix、libmilter 和 python 模块 Milter。
我尝试运行在 pymilter-0.9.7.tar.gz 中找到的 sample.py milter(来自http://bmsi.com/python/milter.html) 但我现在不知道如何将它们添加到 postfix。
我尝试设置 smtpd_milters = unix:/tmp/pythonsock 但 postfix 写入日志连接到 Milter 服务 unix:/tmp/pythonsock : 没有这样的文件或目录
python 代码http://pastebin.com/DXG0LFDU
请帮帮我,我该怎么办?
答案1
Postfix 可能在 chroot 环境中运行。
然后你需要把插座放在这样的地方:/var/spool/postfix/var/run/pythonsock
然后还要确保权限正确。但是,您会在 mail.log 中收到不同的消息。
答案2
你需要阅读postfix Milter 页面在做任何其他事情之前,但是如果您尝试使用该smtpd_milters
设置,则您的 milter 不会以那种方式说话,或者您错误地配置了文件的路径。
我想说的是常见问题解答页面,第一种情况是正确的示例,因为它们提供了inet:host:port
配置示例(使用 sendmail 语法)。
答案3
这听起来可能很明显,但确实让我困惑了一段时间。您的 Milter 必须先运行(并打开套接字),然后 Postfix 才能连接到它。本质上,您需要每个 Milter 作为 Postfix 之外的守护进程运行。
我原以为 Postfix 会像 Sendmail 脚本一样根据需要为每条消息调用 Milter。