繁体   English   中英

用于后缀的Python过滤器

[英]Python filter for postfix

我正在尝试为postfix创建一个简单的Python过滤器,在某些消息的“Reply-to”标题中添加。

到目前为止我所做的是从stdin获取电子邮件,并将其解析为一个电子邮件对象,如下所示:

raw = sys.stdin.readlines()
msg = email.message_from_string(''.join(raw))

然后我玩了标题等。

msg.add_header('Reply-to', 'foo@bar.com')

现在想把它重新注入后缀。 阅读与postfix相关的过滤器自述文件 ,我应该使用'sendmail'命令将其传回去。 但是,我不确定如何将电子邮件对象传递给sendmail,例如使用subprocess的'call()'或者是否应该使用smtplib的'smtplib.SMTP()'?

什么是'正确'的方法?

谢谢

您应该能够使用这两种方法,但smtplib.SMTP()更灵活,使错误处理更容易。

如果您需要一个示例,请查看我的python过滤器框架https//github.com/gryphius/fuglu/blob/master/fuglu/src/fuglu/connectors/smtpconnector.py#L67

re_inject方法就是这样(FUSMTPClient是smtplib.SMTP的子类),所以基本上归结为:

client = smtplib.SMTP('127.0.0.1',<yourportnumber for the receiving postfix instance>)
client.sendmail(<envelope from>, <envelope to>, <yourmessageobject>.as_string())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM