如何实现Windows指定目录新增图片时自动将其通过邮件发送
Windows文件夹监控自动发图片方案
方案1:PowerShell原生实现(无需安装第三方软件)
Windows系统自带PowerShell环境,无需额外下载工具即可实现需求,步骤如下:
- 提前准备发件邮箱的SMTP服务授权码:登录你的发件邮箱后台,开启SMTP服务,获取专用授权码(注意不是邮箱登录密码)
- 创建监控脚本:将以下代码保存为
pic_monitor.ps1,修改开头配置项为你自己的参数
# 自定义配置项 $watcherPath = "C:\newpics\" $smtpServer = "smtp.xxx.com" # 对应邮箱SMTP服务器地址,如163邮箱为smtp.163.com、QQ邮箱为smtp.qq.com $smtpPort = 587 $senderEmail = "你的发件邮箱@xxx.com" $senderAuthCode = "你的SMTP授权码" $receiverEmail = "myemail@example.org" # 要监控的图片后缀,可自行增减 $imageExtensions = @(".bmp", ".jpg", ".jpeg", ".png", ".gif", ".webp") # 初始化文件夹监控器 $watcher = New-Object System.IO.FileSystemWatcher $watcher.Path = $watcherPath $watcher.IncludeSubdirectories = $false $watcher.EnableRaisingEvents = $true # 新增文件触发逻辑 $action = { $newFilePath = $Event.SourceEventArgs.FullPath $fileExt = [System.IO.Path]::GetExtension($newFilePath).ToLower() # 仅处理指定格式的图片 if ($imageExtensions -contains $fileExt) { # 等待文件完全写入,避免占用报错 do { try { $stream = [System.IO.File]::Open($newFilePath, 'Open', 'Read', 'None') if ($stream) { $stream.Close() break } } catch { Start-Sleep -Milliseconds 300 } } while ($true) # 构造并发送邮件 $smtpClient = New-Object Net.Mail.SmtpClient($smtpServer, $smtpPort) $smtpClient.EnableSsl = $true $smtpClient.Credentials = New-Object System.Net.NetworkCredential($senderEmail, $senderAuthCode) $mail = New-Object Net.Mail.MailMessage($senderEmail, $receiverEmail, "新增图片:$($Event.SourceEventArgs.Name)", "附件为监控文件夹新增的图片文件") $mail.Attachments.Add(New-Object Net.Mail.Attachment($newFilePath)) try { $smtpClient.Send($mail) } catch { # 可自行添加失败重试、日志记录逻辑 } finally { $mail.Dispose() } } } # 绑定文件创建事件 Register-ObjectEvent -InputObject $watcher -EventName Created -Action $action | Out-Null # 保持脚本后台运行 while ($true) { Start-Sleep -Seconds 10 }
- 脚本运行与自启设置
- 首次运行如果提示权限不足,以管理员身份打开PowerShell,执行
Set-ExecutionPolicy RemoteSigned,按Y确认即可 - 右键点击脚本文件,选择「使用PowerShell运行」即可生效
- 如需开机自启,创建脚本的快捷方式,将快捷方式的目标修改为
powershell.exe -WindowStyle Hidden -File "你的脚本完整路径\pic_monitor.ps1",再把快捷方式放入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp目录即可
方案2:第三方工具实现(适合无代码基础用户)
使用本地自动化工具即可通过可视化配置实现需求,步骤如下:
- 安装支持文件夹监控的自动化工具(如AutoHotkey、本地文件夹监控类工具)
- 新建监控规则,指定监控路径为
C:\newpics\,触发条件设置为新增文件,文件过滤规则限定为图片后缀 - 配置触发动作:选择发送邮件,填写收件人地址、SMTP服务配置,设置附件为新增的目标文件即可
注意事项
- 首次使用建议先测试小体积图片,确认附件发送、接收正常再正式使用
- 可自行添加发送失败重试逻辑,避免网络波动导致文件漏发
- 不要在监控文件夹内存放大体积非图片文件,避免不必要的性能占用
内容的提问来源于stack exchange,提问作者R3N
相关产品推荐
相关产品推荐

