我正在尝试通过 Powershell 发送电子邮件。我可以使用下面的代码毫无问题地向一位收件人发送电子邮件。但是,当我向$EmailTo变量添加第二个收件人时,我没有收到电子邮件。我也没有收到任何错误。我做了一些研究,似乎 SMTP 客户端发送电子邮件的方式不需要多个收件人。
$EmailFrom = "sender@email.com"
$EmailTo = "recipient1@email.com"
$EmailBody = "Test Body"
$EmailSubject = "Test Subject"
$Username = "carlos@email.com"
$Password = "12345"
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$SMTPClient = New-Object Net.Mail.SmtpClient("smtp.com", 123) #Port can be changed
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$SMTPClient.Send($Message)
Run Code Online (Sandbox Code Playgroud)
我尝试使用该Send-MailMessage命令,但它给我带来了问题。
Send-MailMessage -from $EmailFrom -to $EmailTo -Subject $EmailSubject `
-smtpserver smtp.com -usessl `
-credential (new-object System.NetworkCredential("$Username","$Password"))
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
找不到类型 [System.NetworkCredential]...
关于通过身份验证向多个收件人发送电子邮件的最佳方式是什么?
确保$EmailTo用逗号分隔地址列表,不要作为数组传递。IE:
做这个:
$EmailTo = "recipient1@email.com,recipient2@email.com"
Run Code Online (Sandbox Code Playgroud)
不要这样做:
$EmailTo = "recipient1@email.com","recipient2@email.com"
Run Code Online (Sandbox Code Playgroud)
或这个:
$EmailTo = "recipient1@email.com;recipient2@email.com"
Run Code Online (Sandbox Code Playgroud)
最后一个会抛出您很容易注意到的以下异常:
新对象:使用“4”个参数调用“.ctor”时出现异常:“指定的字符串不是电子邮件地址所需的格式。”
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |