Назад | Перейти на главную страницу

Как можно повторно отправить электронную почту, которая была доставлена ​​в папку недопустимой почты в IIS?

У нас IIS настроен как ретранслятор SMTP. Ошибка безопасности ретрансляции привела к тому, что исходящие электронные письма были сброшены в папку недопустимой почты для службы IIS SMTP.

Есть ли какой-нибудь стандартный метод повторной попытки доставки этих писем?

В соответствии с Служба поддержки Microsoft:

Чтобы воспроизвести сообщения, находящиеся в папке недопустимой почты, выполните следующие действия:

  1. Остановите службу SMTP.

    1. Откройте диспетчер IIS.

    2. Щелкните правой кнопкой мыши виртуальный SMTP-сервер по умолчанию и выберите команду Остановить.

  2. Скопируйте все файлы, которые находятся в папке недопустимой почты и имеют .bad расширение имени файла. Затем вставьте эти файлы в папку раскладки.

  3. Удалить .bad расширение имени файла из всех .bad файлы, которые находятся в папке раскладки.

  4. Запустите службу SMTP.

    1. Откройте диспетчер IIS.

    2. Щелкните правой кнопкой мыши виртуальный SMTP-сервер по умолчанию и нажмите кнопку Пуск.

  5. Убедитесь, что сообщения были доставлены.

Создайте командный файл.

@Echo on 
net stop smtpsvc
move x:\inetpub\mailroot\badmail\\*.bad x:\inetpub\mailroot\pickup\\*.
cd\
net start smtpsvc

В качестве альтернативы вы можете использовать приведенный ниже сценарий Powershell, замечательно созданный нашим внутренним техническим гуру. Он удаляет часть "Сбой доставки" .BAD файл и повторяет попытку отправки сообщения, как если бы это была исходная отправка.

$INETPUBHome = "C:\inetpub\mailroot"
$BadMail = "$INETPUBHome\BadMail"
$Pickup = "$INETPUBHome\Pickup"

stop-service -Name SMTPSVC

foreach ($f in Get-ChildItem -Path $BadMail -Filter *.bad) {
    $smpt_body = Get-Content -Path $f.FullName -Raw

    $r = $smpt_body -replace "(?smi)From:[^!]+?^From:", "From:"

    $r | Out-File -FilePath $Pickup\$($f.BaseName) -Encoding ascii

    Remove-Item $f.FullName
}

start-service -Name SMTPSVC

Вы можете открыть командную строку, перейти в папку с ошибками и выполнить следующую команду, чтобы удалить расширения во всех сообщениях:

rename *.* *.

Перетащите их в папку для самовывоза.