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

如何实现Windows指定目录新增图片时自动将其通过邮件发送

Windows文件夹监控自动发图片方案

方案1:PowerShell原生实现(无需安装第三方软件)

Windows系统自带PowerShell环境,无需额外下载工具即可实现需求,步骤如下:

  1. 提前准备发件邮箱的SMTP服务授权码:登录你的发件邮箱后台,开启SMTP服务,获取专用授权码(注意不是邮箱登录密码)
  2. 创建监控脚本:将以下代码保存为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
}
  1. 脚本运行与自启设置
  • 首次运行如果提示权限不足,以管理员身份打开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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:09:02