Перехват исходящей электронной почты Exchange Server и ее изменение - PullRequest
0 голосов
/ 31 марта 2010

Я хочу иметь возможность перехватывать исходящую электронную почту в определенном домене в Exchange Server и изменять заголовки до ее фактической доставки.

По сути, моя компания была куплена другой, и где мы использовали MDaemon и подписывали все наши электронные письма с помощью DKim и DomainKeys, новая компания использует Exchange Server, который не может и не будет этого делать. Кажется, это серьезный недосмотр, так что я думаю, что мне нужно будет сделать это самому. Я уже написал COM-компонент, который может подписывать определенные файлы сообщений, которые я использую на своем личном почтовом сервере, используя hMailServer, поэтому хотел сделать то же самое для Exchange.

Возможно ли это, и если да, то как бы вы это сделали?

Я посмотрел, но не смог найти очевидный способ сделать это. Вот некоторые из вещей, на которые я смотрел:

  • Транспортные агенты
  • Event Sinks
  • События магазина

Любая помощь будет оценена. Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июля 2017

Возможно, для этого вы можете использовать Универсальный транспортный агент Exchange (с открытым исходным кодом, ссылка идет на GitHub). Он обеспечивает уровень абстракции над транспортным агентом Exchange и специально предназначен для обработки событий для входящей / исходящей электронной почты. Вы можете вызывать пользовательские пакетные сценарии для перезаписи всей электронной почты, например, для добавления пользовательских заголовков и т. д.

0 голосов
/ 30 июня 2015

Для 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";
    }
}

Вы можете изменить фактическое сообщение с помощью GetContentWriteStream () и просто добавить или заменить существующее содержимое.

Больше образцов можно найти здесь .

Я знаю ... это поздний ответ, но я наткнулся на этот вопрос и просто хочу оставить некоторые полезные ссылки, которые я нашел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...