我们已将 IIS 设置为 SMTP 中继。中继安全错误导致外发电子邮件被丢弃到 IIS SMTP 服务的死信文件夹中。
是否有任何标准方法可以尝试重试发送这些电子邮件?
答案1
根据Microsoft 支持:
要重播位于 Badmail 文件夹中的邮件,请按照以下步骤操作:
停止 SMTP 服务。
打开 IIS 管理器。
右键单击“默认 SMTP 虚拟服务器”,然后单击“停止”。
复制 Badmail 文件夹中所有具有
.bad
文件扩展名的文件。然后,将这些文件粘贴到 Pickup 文件夹中。删除Pickup 文件夹中
.bad
所有文件的文件扩展名。.bad
启动 SMTP 服务。
打开 IIS 管理器。
右键单击“默认 SMTP 虚拟服务器”,然后单击“开始”。
验证消息是否已送达。
答案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
将它们拖放到拾取文件夹中。