【发布时间】:2021-06-28 19:27:18
【问题描述】:
我正在尝试检索 URL 的内容,根据某些条件对其进行过滤,并与多个邮件收件人共享此过滤结果。我的邮件收件人和 smtp 设置存在于 xml 文件中。我从 power shell 脚本中调用该 xml 文件并发送电子邮件。当 xml 文件只有 1 个收件人时,代码工作得非常好。 `
[CmdletBinding()]
param ()
#-------------------------------------------------
# Variables
#-------------------------------------------------
Start-Transcript
$myDir = "C:\Users\abc\Desktop"
$request='https://reqres.in/api/users?per_page=25'
invoke-restmethod -Uri $request | ConvertTo-Json -Depth 100 | Out-file C:\Users\abc\Desktop\API_Content.json
$variable=invoke-webrequest $request | ConvertFrom-Json # WE CAN ALSO USE $variable =Get-Content “C:\Users\abc\Desktop\API_Content.json”#
$data=$variable.data | Where-Object {$_.id -ge 7 -and $_.id -le 9}
#$data | Format-List *
# Import email settings from config file
[xml]$ConfigFile = Get-Content "$myDir\Settings.xml"
# Create email content
$smtpsettings = @{
to = $ConfigFile.Settings.EmailSettings.MailTo
from = $ConfigFile.Settings.EmailSettings.MailFrom
subject = "TEST EMAIL"
smtpServer = $ConfigFile.Settings.EmailSettings.SMTPServer
}
[String]$messagebody = ""
#-------------------------------------------------
# Script
#-------------------------------------------------
try
{
#Send-MailMessage @smtpsettings -Body $body -ErrorAction STOP
$smtp = New-Object Net.Mail.SmtpClient($smtpsettings.SmtpServer)
$smtp.Send($smtpsettings.To,$smtpsettings.From, $smtpsettings.Subject, $messagebody)
}
catch
{
Write-Warning $_.Exception.Message
}
#-------------------------------------------------
# The End
#-------------------------------------------------
`当我向 xml 文件添加多个收件人而不是一个收件人时,我收到错误消息:" 警告:使用“4”参数调用“发送”的异常:“在邮件标题中发现无效字符:','。”
XML FILE SETTINGS (IGNORE THE SMPTP SERVER NAME)
我需要将消息正文发送给 4 个收件人,而不是 1 个收件人,保持上述代码和方法不变。
请求任何帮助。
【问题讨论】:
-
$ConfigFile.Settings.EmailSettings.MailTo的值是多少? -
abc@xyz.com 25 abc@xyz .com 'you@xyz.com,me@xyz.com' -
@lit - 你能回复吗?
-
请看@Cpt.Whale的回答。
标签: powershell email