У нас IIS настроен как ретранслятор SMTP. Ошибка безопасности ретрансляции привела к тому, что исходящие электронные письма были сброшены в папку недопустимой почты для службы IIS SMTP.
Есть ли какой-нибудь стандартный метод повторной попытки доставки этих писем?
В соответствии с Служба поддержки Microsoft:
Чтобы воспроизвести сообщения, находящиеся в папке недопустимой почты, выполните следующие действия:
Остановите службу SMTP.
Откройте диспетчер IIS.
Щелкните правой кнопкой мыши виртуальный SMTP-сервер по умолчанию и выберите команду Остановить.
Скопируйте все файлы, которые находятся в папке недопустимой почты и имеют .bad
расширение имени файла. Затем вставьте эти файлы в папку раскладки.
Удалить .bad
расширение имени файла из всех .bad
файлы, которые находятся в папке раскладки.
Запустите службу SMTP.
Откройте диспетчер IIS.
Щелкните правой кнопкой мыши виртуальный SMTP-сервер по умолчанию и нажмите кнопку Пуск.
Убедитесь, что сообщения были доставлены.
Создайте командный файл.
@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 *.* *.
Перетащите их в папку для самовывоза.