Powershell邮件:如何以高重要性发送电子邮件?

4

我正在尝试使用Powershell发送一封高重要性的电子邮件。但是当邮件到达收件箱时,它并没有被标记为高重要性。

以下是电子邮件脚本:

$EmailFrom = "monitoring@mydomainname.no"
$EmailTo = "fatherazrael@tcs.com"
$Subject = "Disk Space Low: $server"

$Body = "Server Name:  $server, <NEED NEW LINE> Drive: C,  <NEED NEW LINE>  Total Size: $sizeGB,  <NEED NEW LINE> Space Left: $freeSpaceGB"

$SMTPServer = "scan.opinergo.fn"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
#$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("<From mail ID>", "Password");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)   

对于重要性很高的邮件,我添加了以下内容,但当邮件发送到Outlook时,没有任何作用:

1)$EmailPriority = [System.Net.Mail.MailPriority]::High

邮件发送成功,但没有设置重要性。

2)$Priority = [System.Net.Mail.MailPriority]::High

邮件发送成功,但没有设置重要性。

3)$Priority = "high"

邮件发送成功,但没有设置重要性。

4)$EmailPriority = "high"

邮件发送成功,但没有设置重要性。


你如何将 $EmailPriority 变量传递给 SMTPClient? - Gerald Schneider
我从未使用过PowerShell发送邮件,但是从浏览文档中得知,您需要使用MailMessage类构建消息,并在那里设置适当的标头。 - Gerald Schneider
@Gerald Schneider:就像代码片段中显示的其他参数一样简单。 - fatherazrael
3个回答

12

这段代码将发送一封高优先级的电子邮件:

  $smtp = new-object Net.Mail.SmtpClient("yourDomain.com") 
  $email = New-Object System.Net.Mail.MailMessage
  $email.From = "fromEmail@email.com"
  $email.To.Add("ToEmail@email.com")
  $email.Subject = "Enter  your Email Subject"
  $email.Body = "Enter the body of your email"
  $email.Priority = [System.Net.Mail.MailPriority]::High
  $smtp.Send($email)

8

尝试使用Send-MailMessage cmdlet,然后指定-Priority参数:

$password = "pass" | ConvertTo-SecureString -AsPlainText -Force
$credentials = New-Object PSCredential("username", $password)

Send-MailMessage `
    -To recipient@example.com `
    -From sender@example.com `
    -Subject Example `
    -SmtpServer smtp.example.com `
    -Credential $credentials
    -Priority High

1

$emailMessage.Priority = 2

$emailSmtpServer = “xyz”
$emailSmtpServerPort = “587$emailSmtpUser = “x@y.z”
$emailSmtpPass = “abc”

$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = “x@y.z”
$emailMessage.To.Add( “x1@y.z” )
$emailMessage.To.Add( “x2@y.z” )
$emailMessage.Subject = “EMAIL CHECK!”
$emailMessage.IsBodyHtml = “True”

#Low Priority
#$emailMessage.Priority = 1

#High Priority
$emailMessage.Priority = 2

$emailMessage.Body = @”
    Email body... <br />
    <br />
    <br />
    Message Sent from Power Shell.
“@

$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort )
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass );

$SMTPClient.Send($emailMessage )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接