PowerShell函数传递-body参数失败:邮件正文为空求助
问题原因及修复方案
你的邮件正文为空的核心问题有两个:
- 自定义的
emailHelp函数没有定义-body参数,调用时传入的$bodyMessage无法被函数接收 Send-MailMessage命令里没有引用正文内容的变量
修复后的完整代码
function emailHelp { # 定义-body参数,允许传入正文内容 param( [Parameter(Mandatory=$false)] [string]$body ) $smtpaddress = "help@help.com" $fromsmtpaddress = "needhelp@help.com" # 在Send-MailMessage中加入-body参数,引用函数接收的$body变量 Send-MailMessage -To $smtpaddress -From $fromsmtpaddress -Subject 'I have an issue' -SmtpServer "1.1.1.1" -Port 25 -Body $body } ---some script here--- # 赋值具体的正文内容 $bodyMessage = "这里是具体的邮件正文内容" ---going to call email function--- emailHelp -body $bodyMessage
关键修改点说明
- 给
emailHelp函数添加param块,声明-body参数,确保调用时传入的参数能被函数捕获 - 在
Send-MailMessage命令中添加-Body $body,把接收的正文参数传递给邮件发送命令 - 调用前必须给
$bodyMessage赋值具体文本(原代码仅声明变量未赋值,也会导致正文为空)
内容的提问来源于stack exchange,提问作者Donald Martin
相关产品推荐
相关产品推荐

