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

求助:修改PowerShell弹窗脚本实现答案邮件回传

实现PowerShell弹窗结果邮件回传的解决方案

你可以通过PowerShell的Send-MailMessage cmdlet将用户的弹窗选择结果发送邮件,以下是整合后的完整脚本:

# 加载弹窗所需程序集
Add-Type -AssemblyName PresentationCore,PresentationFramework

# 弹窗配置
$msgBody = "This is a question type your answer"
$msgTitle = "Confirm Reboot"
$msgButton = 'YesNoCancel'
$msgImage = 'Question'

# 显示弹窗并获取用户选择结果
$Result = [System.Windows.MessageBox]::Show($msgBody,$msgTitle,$msgButton,$msgImage)
Write-Host "The user chose: $Result [" ($result).value__ "]"

# 邮件发送配置(请根据实际情况修改以下参数)
$smtpServer = "smtp.example.com"  # 你的SMTP服务器地址
$smtpPort = 587  # SMTP端口,通常587(TLS)或465(SSL)
$fromAddress = "sender@example.com"  # 发件人邮箱
$toAddress = "recipient@example.com"  # 收件人邮箱
$mailSubject = "用户弹窗选择结果"
$mailBody = @"
用户的弹窗选择结果如下:
选择内容:$Result
对应数值:$($result.value__)
"@

# 发送邮件
Send-MailMessage -SmtpServer $smtpServer -Port $smtpPort -From $fromAddress -To $toAddress -Subject $mailSubject -Body $mailBody -UseSsl -Credential (Get-Credential)

关键说明:

  • 必填参数修改:必须替换$smtpServer、$fromAddress、$toAddress为你实际的邮件服务器和邮箱信息,端口根据服务器要求调整。
  • 身份验证:-UseSsl启用加密连接,Get-Credential会弹出窗口让你输入发件人邮箱的登录凭据;若需脚本自动运行,可提前将凭据加密存储后调用(不建议明文写入脚本)。
  • 内容格式化:使用Here-String(@")格式化邮件正文,让结果展示更清晰。

如果你的环境不支持Send-MailMessage,也可以用.NET的SmtpClient类实现,示例如下:

# .NET SmtpClient实现方式
$smtpClient = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = Get-Credential

$mailMessage = New-Object System.Net.Mail.MailMessage($fromAddress, $toAddress, $mailSubject, $mailBody)
$smtpClient.Send($mailMessage)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:12:05