send-MailMessage不起作用

时间:2014-09-16 17:55:03

标签: powershell-v2.0

我在PowerShell版本2中使用send-MailMessage cmdlet,它给了我一个错误。

我尝试使用之前帖子中提到的所有选项,但这对我没有帮助。

这是我正在使用的命令:

send-MailMessage -from "abc@gmail.com" -to "def@gmail.com" 
                 -subject "test" -body"test" -smtp "smtp.gmail.com" 

我收到错误:

  

Send-MailMessage:SMTP服务器需要安全连接或客户端未经过身份验证   e是:5.7.0必须首先发出STARTTLS命令。 l46sm12283804qgd.27 - gsmtp
  在行:1 char:17
  + send-MailMessage<<<< - 从“abc@gmail.com” - 到“def@gmail.com” - 主题“te
  凭证abc
  + CategoryInfo:InvalidOperation:(System.Net.Mail.SmtpClient:SmtpClient)[Se
  离子
  + FullyQualifiedErrorId:SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

我尝试使用UseSsl= true并提供凭据,即便如此我也无法发送电子邮件。你能让我知道我在这里缺少什么吗?

2 个答案:

答案 0 :(得分:2)

要使用 gmail ,您需要使用SSL,我不确定您是否可以使用Send-MailMessage试试这个:

$emailSmtpServer = "smtp.gmail.com"
$emailSmtpServerPort = "587"
$emailSmtpUser = "yourlogin@gmail.com"
$emailSmtpPass = "yourPassword"

$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "yourlogin@gmail.com"
$emailMessage.To.Add("YourSendTo@mail.com")
$emailMessage.Subject = "Small mail for a friend"
$emailMessage.IsBodyHtml = $true
$emailMessage.Body = @"
<p><strong>Hello me</strong>.</p>
<p>It seems to work</p>
<p>JP</p>
"@

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

$SMTPClient.Send( $emailMessage )

编辑:

要使用邮件附件,请查看Sytem.Net.Mail.MailMessage文档。您首先需要创建Attachment,然后将其添加到MailMessage Attacments集合。

答案 1 :(得分:0)

对于那些以后来的人,这是我的两个班轮示例,对于帐户&#34; gmail-user@gmail.com"。这可以安排。

$credentials = new-object Management.Automation.PSCredential “gmail-user@gmail.com”, (“gmail-user's password” | ConvertTo-SecureString -AsPlainText -Force)

Send-MailMessage -From "gmail-user@gmail.com" -to "someone-else@gmail.com" -Subject "Some subject"
-Body "Some body" -SmtpServer "smtp.gmail.com" -port 587 -UseSsl
-Credential $credentials -Attachments "C:\an-attachment.txt"