如何用PowerShell查看Exchange Online/365邮箱内容并自动下载指定邮件附件?
使用PowerShell管理Exchange Online邮箱:查看内容、自动收集特定邮件及下载附件
一、准备工作:安装并连接Exchange Online PowerShell模块
- 以管理员身份打开PowerShell,安装官方模块:
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
- 连接到Exchange Online服务:
Connect-ExchangeOnline -UserPrincipalName your@domain.com
首次运行会弹出登录窗口,输入你的M365账号密码完成验证。
二、查看个人邮箱内容
1. 列出邮箱所有文件夹
Get-EXOMailboxFolderStatistics -Mailbox your@domain.com | Select-Object Name, FolderPath
2. 查看收件箱邮件核心信息
Get-EXOMessage -Mailbox your@domain.com -FolderPath Inbox | Select-Object Subject, ReceivedTime, HasAttachments, FromAddress
3. 查看单封邮件的详细内容与附件
# 定位目标邮件(可根据主题关键词筛选) $targetMail = Get-EXOMessage -Mailbox your@domain.com -FolderPath Inbox | Where-Object { $_.Subject -like "*月度报表*" } | Select-Object -First 1 # 查看邮件正文预览 $targetMail.BodyPreview # 列出该邮件的附件 Get-EXOAttachment -MessageId $targetMail.Id | Select-Object Name, Size
三、自动收集每周特定邮件并下载附件
1. 设置筛选规则与时间范围
# 定义时间范围:最近7天(适配每周执行的需求) $startDate = (Get-Date).AddDays(-7) # 配置筛选条件(替换为你的实际需求) $filter = { $_.Subject -like "*每周数据汇总*" -and $_.FromAddress -eq "data-team@company.com" -and $_.ReceivedTime -ge $startDate } # 获取符合条件的邮件 $targetEmails = Get-EXOMessage -Mailbox your@domain.com -FolderPath Inbox | Where-Object $filter
2. 批量下载附件到本地
# 设置附件根保存路径(按需修改) $saveRoot = "C:\M365_Attachments\Weekly_Data" foreach ($email in $targetEmails) { if ($email.HasAttachments) { # 创建按邮件日期+主题命名的子文件夹,避免附件重名 $emailFolder = Join-Path $saveRoot "$($email.ReceivedTime.ToString('yyyyMMdd'))_$($email.Subject.Replace(':', '_'))" New-Item -ItemType Directory -Path $emailFolder -Force | Out-Null # 遍历下载每个附件 $attachments = Get-EXOAttachment -MessageId $email.Id foreach ($att in $attachments) { $savePath = Join-Path $emailFolder $att.Name $att.Content | Set-Content $savePath -Encoding Byte Write-Host "已下载附件:$($att.Name) 到 $savePath" } } }
3. 配置每周自动执行
将上述代码保存为.ps1脚本文件,通过Windows任务计划程序实现自动运行:
- 触发器:设置为每周固定时间(如周一上午9点)
- 操作:启动程序
powershell.exe,参数填写-ExecutionPolicy Bypass -File "C:\路径\到\你的脚本.ps1"
注意事项
- 确保你的M365账号拥有读取自身邮箱及下载附件的权限(默认账号具备该权限)
- 首次运行模块时,需同意安装来自PSGallery的信任模块
- 脚本中的邮箱地址、筛选条件、保存路径需根据实际场景替换
内容的提问来源于stack exchange,提问作者Danny Moulier
相关产品推荐
相关产品推荐

