IIS SMTPリレーとして設定されています。リレーのセキュリティエラーにより、送信メールがIIS SMTPサービスのbadmailフォルダにドロップされました。
これらの電子メールの配信を再試行するための標準的な方法はありますか?
Microsoft support によると:
Badmailフォルダーにあるメッセージを再生するには、次の手順に従います。
SMTPサービスを停止します。
開くIISマネージャ。
[既定のSMTP仮想サーバー]を右クリックし、[停止]をクリックします。
Badmailフォルダにあり、ファイル名拡張子が.bad
のすべてのファイルをコピーします。次に、これらのファイルをPickupフォルダーに貼り付けます。
Pickupフォルダーにあるすべての.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
コマンドプロンプトを開いてbadmailフォルダーに移動し、次のコマンドを実行してすべてのメッセージの拡張子を削除できます。
rename *.* *.