如何在XML配置文件中添加多收件人并通过PowerShell脚本发送邮件
报错原因
WARNING: Exception calling "Send" with "4" argument(s): "An invalid character was found in the mail header: ','."
该报错是由于Net.Mail.SmtpClient.Send()方法的收件人参数不支持逗号分隔的多邮箱格式,仅支持分号分隔的邮箱字符串,或邮箱地址数组,你在XML中用逗号分隔多个收件人时,直接传入就会触发邮件头非法字符校验错误。
解决方案
仅需修改smtpsettings中to字段的赋值逻辑即可,完全保留原有代码、实现逻辑和XML配置规则,改动量极小:
# Create email content $smtpsettings = @{ # 仅新增逗号转分号的逻辑,其余配置完全不变 to = $ConfigFile.Settings.EmailSettings.MailTo.Replace(',', ';') from = $ConfigFile.Settings.EmailSettings.MailFrom subject = "TEST EMAIL" smtpServer = $ConfigFile.Settings.EmailSettings.SMTPServer }
如果偏好数组传参的规范写法,也可以替换为如下逻辑,效果完全一致:
to = $ConfigFile.Settings.EmailSettings.MailTo -split ','
内容的提问来源于stack exchange,提问作者Siddhartha Das
相关产品推荐
相关产品推荐

