今天邮箱服务器发现有大量发件人为空的邮件等待执行,也就是说空邮件堵塞了队列。
一般来说,空邮件就是别人发送垃圾邮件给你,你的服务上不存在这个收件人,那么系统会产生一封退信告诉你这封邮件已经被退。而exchange默认的退信账号为空发件人,所以只要你的垃圾邮件非常多,你就会发现问题很严重。大量的空邮件会使正常邮件无法发送成功。
1.首先启用反垃圾功能:
以管理员权限运行Exchange Management Shell
cd %系统驱动器%/Program FilesMicrosoftExchange ServerV14Scripts(大部分人应该都是C盘,装在其他盘自己看着填吧)
转到指定文件夹下后输入
.install-AntispamAgents.ps1
脚本运行完毕后,运行以下重启命令,重新启动Microsoft Exchange传输服务
Restart-Service MSExchangeTransport
使用命令行管理程序设置 InternalSMTPServers 参数
重要说明: 要使所有反垃圾邮件功能正常工作,必须通过 Set-TransportConfig cmdlet 在InternalSMTPServers 参数中设置至少一个内部 SMTP 服务器 IP 地址。 如果运行反垃圾邮件功能的集线器传输服务器是组织中唯一的 SMTP 服务器,请输入该计算机的 IP 地址。
Set-TransportConfig -InternalSMTPServers [IPAddress]
输入命令查看设置选项
Get-SenderFilterConfig
//看一下Enabled和BlankSenderBlockingEnabled是不是true,不是根据下面的命令选择性操作
启用发件人筛选
Set-SenderFilterConfig -Enabled $true
禁用空发件人邮件
Set-SenderFilterConfig -BlankSenderBlockingEnabled $true
禁网清理数据,先看提供的网页在删除,数据至上
Remove-Message -Server Server1 -Filter {FromAddress -eq "Kweku@contoso.com"} -WithNDR $false
//-Server 要进行服务器操作的名称
//-Filter 这个关键词,作用是筛选
//-withNDR 是否把非发送报告(NDR)返回给发件人
/*https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/retry-queue?view=exchange-ps
*https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/remove-message?view=exchange-ps
*这两个是exchange shell的用法,可以看看,了解好再删除数据
*/
参考:https://technet.microsoft.com/zh-cn/library/bb201691(v=exchg.141).aspx
http://www.bubuko.com/infodetail-2417983.html
http://bbs.51cto.com/thread-1317651-1-1.html
https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/retry-queue?view=exchange-ps
https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/remove-message?view=exchange-ps