【问题标题】:How to send an email from yahoo SMTP server with PowerShell?如何使用 PowerShell 从 yahoo SMTP 服务器发送电子邮件?
【发布时间】:2019-02-23 00:15:12
【问题描述】:

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

【问题讨论】:

  • PowerShell 有 Send-MailMessage 方法。如果您有一个不需要身份验证的 SMTP 服务器,它会很好地工作。好吧,它对我不起作用。

标签: powershell smtp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果有人使用 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);
    

    【讨论】:

      猜你喜欢
      • 2017-01-26
      • 2021-10-01
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      相关资源
      最近更新 更多