【发布时间】:2019-02-23 00:15:12
【问题描述】:
如何使用 PowerShell v3 从 yahoo SMTP 服务器发送电子邮件?需要身份验证。
【问题讨论】:
-
PowerShell 有 Send-MailMessage 方法。如果您有一个不需要身份验证的 SMTP 服务器,它会很好地工作。好吧,它对我不起作用。
标签: powershell smtp
如何使用 PowerShell v3 从 yahoo SMTP 服务器发送电子邮件?需要身份验证。
【问题讨论】:
标签: powershell 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);
【讨论】: