web-dev-qa-db-ja.com

IISのBadmailフォルダに配信された電子メールを再送信するにはどうすればよいですか?

IIS SMTPリレーとして設定されています。リレーのセキュリティエラーにより、送信メールがIIS SMTPサービスのbadmailフォルダにドロップされました。

これらの電子メールの配信を再試行するための標準的な方法はありますか?

8
catalpa

Microsoft support によると:

Badmailフォルダーにあるメッセージを再生するには、次の手順に従います。

  1. SMTPサービスを停止します。

    1. 開くIISマネージャ。

    2. [既定のSMTP仮想サーバー]を右クリックし、[停止]をクリックします。

  2. Badmailフォルダにあり、ファイル名拡張子が.badのすべてのファイルをコピーします。次に、これらのファイルをPickupフォルダーに貼り付けます。

  3. Pickupフォルダーにあるすべての.badファイルから.badファイル名拡張子を削除します。

  4. SMTPサービスを開始します。

    1. 開くIISマネージャ。

    2. [既定のSMTP仮想サーバー]を右クリックし、[開始]をクリックします。

  5. メッセージが配信されたことを確認します。

14
catalpa

バッチファイルを作成します。

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

または、社内のテクニカルグルによって作成された以下の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
5
Ashley Ward

コマンドプロンプトを開いてbadmailフォルダーに移動し、次のコマンドを実行してすべてのメッセージの拡張子を削除できます。

rename *.* *.

0
Viktor