You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell循环发送邮件并写入日志排查邮件发送故障

PowerShell循环发送邮件并记录详细日志脚本

没问题,我给你写个完全符合需求的PowerShell脚本,既能循环执行100次邮件发送、每2秒一次,还会把每次的执行结果(成功/失败+错误信息)都记录到日志里,最后还会生成统计总结,方便你排查服务器的间歇性故障。

完整脚本

# 设置日志文件路径(带时间戳,避免覆盖旧日志)
$logPath = ".\EmailSendLog_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"

# 初始化计数器
$successCount = 0
$failureCount = 0

# 循环执行100次
for ($i = 1; $i -le 100; $i++) {
    $currentTime = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
    Write-Host "正在执行第 $i 次发送 ($currentTime)"

    try {
        # 执行邮件发送命令(保留你原有的参数)
        Send-MailMessage -From "test@xxx.com" -To "aaa@xxx.com","bbb@xxx.com","ccc@xxx.com","ddd@xxx.com" -SmtpServer "xx.xx.xx.xx" -Subject "Test email subject - 第 $i 次发送" -Body "Test email body - 发送时间:$currentTime"
        
        # 记录成功日志
        $successLog = "[$currentTime] 第 $i 次发送成功"
        Add-Content -Path $logPath -Value $successLog
        $successCount++
    }
    catch {
        # 记录失败日志,包含详细错误信息
        $errorMessage = $_.Exception.Message
        $failureLog = "[$currentTime] 第 $i 次发送失败 - 错误信息:$errorMessage"
        Add-Content -Path $logPath -Value $failureLog
        $failureCount++
    }

    # 每2秒执行一次
    Start-Sleep -Seconds 2
}

# 写入最终统计总结到日志
$summary = @"
====================================
测试完成统计:
总执行次数:100次
成功次数:$successCount 次
失败次数:$failureCount 次
====================================
"@
Add-Content -Path $logPath -Value $summary
Write-Host "测试完成,日志已保存到:$logPath"
Write-Host $summary

关键部分说明

  • 日志文件命名:脚本会自动生成带时间戳的日志文件(比如EmailSendLog_20240520_153022.log),这样每次测试的日志都不会互相覆盖,方便后续对比分析。
  • Try-Catch异常捕获:用try-catch包裹邮件发送命令,即使某次发送失败,脚本也会继续执行剩下的测试,不会中途停止,同时会把错误信息完整记录下来。
  • 计数器与总结:脚本会实时统计成功和失败的次数,测试结束后会在日志末尾生成清晰的统计总结,让你一眼就能看到整体的发送情况。
  • 邮件主题/内容优化:我给邮件主题和内容加了发送次数和时间,方便你在收件箱里也能对应上日志里的记录(如果有成功送达的邮件)。

你只需要把脚本里的From、To、SmtpServer参数替换成你实际的配置,然后在PowerShell里运行即可。

内容的提问来源于stack exchange,提问作者Ayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:03:21