如何重新发送已发送到 IIS 中的 Badmail 文件夹的电子邮件?

如何重新发送已发送到 IIS 中的 Badmail 文件夹的电子邮件?

我们已将 IIS 设置为 SMTP 中继。中继安全错误导致外发电子邮件被丢弃到 IIS SMTP 服务的死信文件夹中。

是否有任何标准方法可以尝试重试发送这些电子邮件?

答案1

根据Microsoft 支持

要重播位于 Badmail 文件夹中的邮件,请按照以下步骤操作:

  1. 停止 SMTP 服务。

    1. 打开 IIS 管理器。

    2. 右键单击“默认 SMTP 虚拟服务器”,然后单击“停止”。

  2. 复制 Badmail 文件夹中所有具有.bad文件扩展名的文件。然后,将这些文件粘贴到 Pickup 文件夹中。

  3. 删除Pickup 文件夹中.bad所有文件的文件扩展名。.bad

  4. 启动 SMTP 服务。

    1. 打开 IIS 管理器。

    2. 右键单击“默认 SMTP 虚拟服务器”,然后单击“开始”。

  5. 验证消息是否已送达。

答案2

创建批处理文件。

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

答案3

或者,您可以使用下面由我们内部技术专家精心创建的 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

答案4

将它们拖放到拾取文件夹中。

相关内容