如何使用 PowerShell 从雅虎 SMTP 服务器发送电子邮件?

How to send an email from yahoo SMTP server with PowerShell?

如何使用 PowerShell v3 从 yahoo SMTP 服务器发送电子邮件?需要身份验证。

Send-MailMessage 有一个 -Credential 参数接受一个 pscredential 对象。我会使用哈希表来存储和拼接连接参数:

$MailArgs = @{
    From       = 'mindaugas@yahoo.com'
    To         = 'someone@domain.com'
    Subject    = 'A subject line'
    Body       = 'Mail message content goes here!'
    SmtpServer = 'smtp.mail.yahoo.com'
    Port       = 587
    UseSsl     = $true
    Credential = New-Object pscredential 'mindaugas@yahoo.com',$('P@ssW0rd!' |ConvertTo-SecureString -AsPlainText -Force)
}
Send-MailMessage @MailArgs

以防有人使用 MailMessage

寻找 google smtp
[System.Reflection.Assembly]::LoadWithPartialName("System.Net")
[System.Reflection.Assembly]::LoadWithPartialName("System.Net.Mail")    [System.Reflection.Assembly]::LoadWithPartialName("System.Net.Mail.MailMessage")

$mail = New-Object System.Net.Mail.MailMessage
$mail.From =  New-Object System.Net.Mail.MailAddress("XXXX@gmail.com");
$mail.To.Add("XXX@XXXX.com");
$mail.Subject = "Place Subject of email here";
$mail.Body = "Place body content here";
$smtp = New-Object System.Net.Mail.SmtpClient("smtp.gmail.com");
$smtp.Port = "587";
$smtp.Credentials = New-Object System.Net.NetworkCredential("XXXXX@gmail.com", "password");
$smtp.EnableSsl = "true";
$smtp.Send($mail);