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

如何通过命令提示符使用PowerShell发送邮件?附脚本示例

使用PowerShell通过命令提示符发送邮件(基于Gmail SMTP)

我来帮你补全并优化你的PowerShell邮件脚本,再告诉你怎么在命令提示符(CMD)里调用它来发送邮件——毕竟处理Gmail SMTP的坑我熟得很~

1. 完整的PowerShell脚本(补全并优化版)

你的脚本差了最后几行关键代码,我帮你补全还加了一些实用配置:

param(
    [Parameter(Mandatory=$true)]
    [string]$EmailFrom,
    [Parameter(Mandatory=$true)]
    [string]$EmailTo,
    [Parameter(Mandatory=$true)]
    [string]$Subject,
    [Parameter(Mandatory=$true)]
    [string]$Body
)

# Gmail账户配置(注意密码的特殊要求,后面会讲)
$Username = 'user@gmail.com'
$Password = 'your-app-password-here'

# 创建邮件消息对象
$emailMsg = New-Object System.Net.Mail.MailMessage
$emailMsg.From = $EmailFrom
$emailMsg.To.Add($EmailTo)
$emailMsg.Subject = $Subject
$emailMsg.Body = $Body
$emailMsg.IsBodyHtml = $false  # 如果要发HTML邮件,改成$true就行

# 配置SMTP客户端并发送邮件
$smtpClient = New-Object System.Net.Mail.SmtpClient
$smtpClient.Host = 'smtp.gmail.com'
$smtpClient.Port = 587
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtpClient.Send($emailMsg)

# 清理资源(好习惯)
$emailMsg.Dispose()
$smtpClient.Dispose()

Write-Host "邮件发送成功!"

脚本优化说明:

  • 给参数加上了[Parameter(Mandatory=$true)],确保你调用时不会漏传必要信息
  • 新增了IsBodyHtml参数,方便切换纯文本/HTML邮件格式
  • 补全了NetworkCredential的完整写法和关键的Send()发送命令
  • 添加了对象清理和成功提示,方便你确认执行结果

2. 在命令提示符(CMD)中调用脚本

直接用powershell.exe命令来执行你的脚本,把参数按要求传进去就行:

powershell.exe -File "C:\你的脚本路径\SendEmail.ps1" -EmailFrom "你的发件邮箱@xxx.com" -EmailTo "收件人邮箱@xxx.com" -Subject "测试邮件标题" -Body "这是通过CMD调用PowerShell发送的邮件内容"

注意:如果脚本路径包含空格,一定要用双引号把路径括起来,否则CMD会识别错误。

3. Gmail用户必须注意的坑

Gmail的SMTP不是随便填密码就能用的,这里有两个关键要点:

  • 启用两步验证的账户:直接用登录密码会报错!必须去Google账户的「安全」设置里生成应用密码(选择「邮件」应用、「Windows计算机」设备类型,生成后把这个密码填到脚本里)
  • 未启用两步验证的账户:Gmail默认会阻止“不太安全的应用”,你需要去账户设置里开启「允许不太安全的应用」(不过非常不推荐这种方式,建议优先启用两步验证+应用密码,更安全)
  • 端口和SSL必须是587+EnableSsl=$true,用其他端口或关闭SSL都会被Gmail拒绝连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:49:48