我在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
并提供凭据,即便如此我也无法发送电子邮件。你能让我知道我在这里缺少什么吗?
答案 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"