我有一个发送错误SMTP邮件的应用程序。供应商多年来一直承诺修复它,但我已经放弃了希望并且正在编写SMTP中继。
根据标准,每次服务器收到SMTP消息时,都应该在标题块的开头添加一个新的Received:行。我没有看到一个简单的方法来做到这一点。当电子邮件到达时,我使用email.message_from_string()
来解析所有内容。 message.add_header
将附加另一个Received标头,但不会在开头插入一个。我能看到的最佳解决方案是使用msg.get_all('Received')
提取所有标题,然后del msg['Received']
删除所有标题,最后将我和其他所有标题添加回来。这不是'看起来非常优雅。
有没有更好的方法让我失踪?谢谢!