Возможность программно изменить SMTP-сервер IIS «Smart Host» - PullRequest
1 голос
/ 19 января 2011

Недавно я обнаружил способ аудита электронной почты SMTP до того, как они фактически покинули SMTP-сервер.Это достигается путем изменения значения «Smart Host» на что-то, что

  1. Именуется хост, которого не существует
  2. Менее 15 символов
  3. Не имеетточки в имени

alt text

Это позволяет мне просматривать сообщения в Outlook Express, проверять вложения файлов и другой программно сгенерированный контент через System.Net.Mail

Я освобождаю сообщения, меняя это значение на допустимое и перезапуская службу SMTP.

Вопрос

Как можно программно изменить это значение, чтобы я мог разрешитьдля контролируемой очереди, аудита и выпуска этих сообщений электронной почты?

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Вы можете сделать это программно с помощью провайдера IIS WMI. Свойство SmartHost можно найти в объекте IIsSmtpService или IIsSmtpServer . В Windows Server 2008 вам необходимо установить IIS 6.0 WMI-совместимость. Должно работать что-то вроде следующего.

public static void ConfigureSmtpHost()
{
    DirectoryEntry smtpServer = new DirectoryEntry("IIS://LOCALHOST/SMTPSVC/1");
    smtpServer.Properties["SmartHost"].Value = "myNewSmartHost";
    smtpServer.CommitChanges();
}
0 голосов
/ 19 января 2011

Ой! Одним из способов может быть создание программы, которая непосредственно редактирует метабазу, а затем перезапускает SMTPSVC. Я уверен, что есть способ с WMI, но я не знаю, случайно.

Кстати, вы можете пойти в «другом» направлении, отредактировав свой app.config / web.config, чтобы перетащить файлы в папку по вашему выбору:

http://msdn.microsoft.com/en-us/library/ms164241.aspx

После проверки писем вы можете переместить их в очередь IIS.

...