问题标签 [milter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
39 浏览

java - 如何使用 java 在 postfix 的 milter 中复制电子邮件

我在java中使用jmilter为后缀编写了一个milter代码(队列前过滤器) 。我想从原始电子邮件中复制并将其发送到防病毒服务器以检查电子邮件,然后保留原始电子邮件。

当杀毒软件通知电子邮件是干净的时,原始电子邮件将被释放。复制电子邮件很容易出错,因为我需要检查和解析电子邮件并创建一个 MimeMessage 对象。

有没有办法在不解析原始正文和标题的情况下复制电子邮件?

我不是指always_bcc后缀中的选项。我想发送带有原始数据的电子邮件而不制作Mimemessage.

我将正文和标题保存在 hashMap 中并传递给sendBccEmail方法。sendBccEmail解析正文并制作MimeMessage然后发送电子邮件。

0 投票
0 回答
47 浏览

python - 使用 Pymilter 更改邮件标题(主题)

我正在使用 CentOS7 + sendmail + pymilter 来过滤垃圾邮件,目前正在定制已经在 pymilter pkg 中的 sample.py。

我的想法是在收到电子邮件后在主题前添加“[垃圾邮件]”。我想出了如何捕获正文和标题并区分哪个是垃圾邮件,但是更改标题非常困难。

pymilter 介绍它可以通过 eom 中的 headerchange 函数来更改主题或正文。所以已经给出的示例代码如下。

我试图改变def _headerChange(self,msg,name,value)部分,因为它似乎与def eom(self)但它不起作用。

sample.py 文件的完整代码位于https://github.com/sdgathman/pymilter/blob/master/sample.py

我是否触摸了代码的错误部分?我做错了什么?

0 投票
1 回答
31 浏览

postfix-mta - Postfix如何过滤电子邮件(DKIM)而不将消息保存在内存中并且不将其写入磁盘两次?

我需要 DKIM 签署可能是巨大的电子邮件(最多 150MB)。我正在运行 Postfix,到目前为止希望保留该 MTA。

从概念上讲,DKIM 需要检查电子邮件两次:一次计算和签署校验和,一次将前一步的结果写在标题中。1

DKIM 签名者可以通过将消息保存在内存中(对我来说不行)或将其写入文件来做到这一点。

对于手头的任务,我想使用后缀(过滤器)机制,它允许我在不将消息保存在内存中并且不将其写入磁盘两次的情况下做到这一点

到目前为止,我看到队列后内容过滤机制迫使您再次将电子邮件写入磁盘,并且没有任何理由!相反,它应该将可搜索的文件描述符传递给过滤器的标准输入,但实现不这样做。

替代方案before-queue milter对我来说没有足够的文档来查看它是否避免将消息保留在内存中并避免将原始邮件写入文件两次。– 这就是我opendkim在标签中添加的原因:也许那些专家知道 milter API如何避免以及opendkim确实如何避免这些陷阱。


1 ...因为 Posix 文件系统没有前置操作

0 投票
1 回答
32 浏览

rust - 如何使用邮件过滤上下文数据?

我正在尝试使用miltercrate 在 Rust 中编写邮件过滤器。我在 Linux VM 上构建了示例,一切正常。但是,该示例使用 u32 作为注入其处理程序的上下文类型,这是一个非常简单的示例。相反,我需要将一个字符串从handle_header回调存储到handle_eom处理程序,这样我就可以使用传入的标头来设置信封。

如果我将标头的值记录handle_header到控制台,它会正确写入,但是当它到达时handle_eom,它已经被损坏/覆盖了。我认为上下文应该是专门针对这种情况的,但它使用类型推断而不是例如指向一个对象的指针似乎很奇怪,你可以将任何你想要的东西分配给它。

我对上下文的理解是错误的还是代码不正确?

我尝试使用valueand &valuein handle_header,它的行为方式相同。