Notifications 拦截传出的Exchange Server电子邮件并对其进行修改

Notifications 拦截传出的Exchange Server电子邮件并对其进行修改,notifications,exchange-server,Notifications,Exchange Server,我希望能够拦截Exchange Server中特定域上的传出电子邮件,并在邮件实际送达之前修改邮件头 基本上,我的公司已经被另一家公司收购,我们使用MDaemon并使用DKim和DomainKeys签署所有电子邮件,而新公司使用的Exchange Server不能也不会这样做。这似乎是我认为的一个重大疏忽,所以我认为我需要自己去做。我已经编写了一个COM组件,可以使用hMailServer对我在个人邮件服务器上使用的给定邮件文件进行签名,所以我想为Exchange做类似的事情 这可能吗?如果可能

我希望能够拦截Exchange Server中特定域上的传出电子邮件,并在邮件实际送达之前修改邮件头

基本上,我的公司已经被另一家公司收购,我们使用MDaemon并使用DKim和DomainKeys签署所有电子邮件,而新公司使用的Exchange Server不能也不会这样做。这似乎是我认为的一个重大疏忽,所以我认为我需要自己去做。我已经编写了一个COM组件,可以使用hMailServer对我在个人邮件服务器上使用的给定邮件文件进行签名,所以我想为Exchange做类似的事情

这可能吗?如果可能,你会怎么做

我已经看过了,但找不到一个明显的方法。我看到的一些东西包括:

运输代理 事件接收器 存储事件
任何帮助都将不胜感激。谢谢。

对于Exchange 2007及更高版本:似乎TransportAgent是正确的方法

一个非常基本的示例:

public class TestAgent : SmtpReceiveAgent
{
    public TestAgent()
    {
        this.OnEndOfData += new EndOfDataEventHandler(MyEndOfDataHandler);
    }
    private void MyEndOfDataHandler(ReceiveMessageEventSource source, EndOfDataEventArgs e)
    {
        // The following line appends text to the subject of the message that caused the event.
        e.MailItem.Message.Subject += " - this text appended by MyAgent";
    }
}
您可以通过更改实际消息,只需附加或替换现有内容

可以找到更多的样本


我知道。。。这是一个迟来的答案,但我无意中发现了这个问题,只想留下一些我找到的有用链接。

也许你可以使用开源,链接到GitHub。它在Exchange传输代理之上提供了一个抽象层,专门用于处理传入/传出电子邮件的事件。您可以调用自定义批处理脚本来重写整个电子邮件,例如用于添加自定义邮件头等。

Exchange的哪个版本?2007年是一次几乎完全的重写,所以与以前相比有很大的不同……不确定,但现在让我们来看看2007年吧