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

调试PowerShell UTM9 SMTP代理日志解析脚本问题

修复后的PowerShell脚本
# 若未安装ImportExcel模块,先执行下方安装命令(需当前用户权限)
# Install-Module -Name ImportExcel -Scope CurrentUser -Force

# 配置路径
$logFilePath = "C:\your\path\utm9_smtp_proxy.log"
$outputExcelPath = "C:\your\output\email_summary.xlsx"

# 读取日志并按邮件条目分割(假设每个邮件以"F From:"作为起始标识)
$fullLog = Get-Content -Path $logFilePath -Raw
$emailItems = $fullLog -split '(?=F From:)' | Where-Object { $_ -match '\S' }

# 初始化结果集合
$resultList = @()

foreach ($item in $emailItems) {
    # 提取日期
    $date = if ($item -match 'Date:\s*(.*?)\r?\n') { $matches[1].Trim() } else { $null }
    # 提取发件人
    $sender = if ($item -match 'From:\s*(.*?)\r?\n') { $matches[1].Trim() } else { $null }
    # 提取收件人
    $recipient = if ($item -match 'To:\s*(.*?)\r?\n') { $matches[1].Trim() } else { $null }
    # 提取主题(匹配到下一个非空格开头的行或条目结束为止)
    $subject = if ($item -match 'Subject:\s*(.*?)(?=\r?\n\S|$)' -simplematch) { $matches[1].Trim() } else { $null }

    # 组装对象加入结果集合
    $resultList += [PSCustomObject]@{
        日期 = $date
        发件人 = $sender
        收件人 = $recipient
        主题 = $subject
    }
}

# 导出标准Excel文件(避免损坏)
$resultList | Export-Excel -Path $outputExcelPath -AutoSize -FreezeTopRow

# 若不想用ImportExcel模块,可导出为CSV(无损坏风险,Excel可直接打开)
# $resultList | Export-Csv -Path "C:\your\output\email_summary.csv" -Encoding UTF8 -NoTypeInformation
核心修复说明

1. 按邮件条目拆分日志

原脚本逐行处理导致主题字段误包含后续内容,修复时用正则(?=F From:)(正向预查)将整个日志拆分为独立的邮件条目,确保每个字段提取都在单个邮件范围内进行。

2. 精准截断主题内容

用正则Subject:\s*(.*?)(?=\r?\n\S|$)匹配主题:

  • .*?采用非贪婪匹配,避免过度抓取
  • (?=\r?\n\S|$)作为终止条件,遇到换行后非空格开头的行(如Thread-Index行)或条目结束时立即停止,确保只提取主题本身。

3. 解决Excel损坏问题

原脚本大概率是直接将CSV改后缀为.xlsx导致格式错误,改用ImportExcel模块生成标准的Excel文件;若不愿安装模块,直接导出CSV格式(纯文本无损坏风险,Excel可直接识别)。

注意事项
  • 确认日志中邮件的起始标识确实是F From:,若实际格式不同,需修改分割正则中的对应内容。
  • 若日志编码非默认,需在Get-Content中添加-Encoding参数(如-Encoding UTF8)指定正确编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:16:11