我在PowerShell版本2中使用send-MailMessage
cmdlet,它给了我一个错误。
我尝试使用之前帖子中提到的所有选项,但它对我没有帮助。
这是我正在使用的命令:
send-MailMessage -from "[email protected]" -to "[email protected]"
-subject "test" -body"test" -smtp "smtp.gmail.com"
我收到一个错误:
Send-MailMessage:SMTP服务器需要安全连接或客户端未经过身份验证 e是:5.7.0必须首先发出STARTTLS命令。 l46sm12283804qgd.27 - gsmtp 在行:1 char:17 + send-MailMessage <<<< - from“[email protected]”-to“[email protected]”-subject“te 凭证abc + CategoryInfo:InvalidOperation:(System.Net.Mail.SmtpClient:SmtpClient)[Se 离子 + FullyQualifiedErrorId:SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
我尝试使用UseSsl= true
并提供凭据,即便如此我也无法发送电子邮件。你能让我知道我在这里失踪了吗?
为了使用Gmail你需要SSL,我不确定你可以使用Send-MailMessage
试试这个:
$emailSmtpServer = "smtp.gmail.com"
$emailSmtpServerPort = "587"
$emailSmtpUser = "[email protected]"
$emailSmtpPass = "yourPassword"
$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "[email protected]"
$emailMessage.To.Add("[email protected]")
$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
集合中。
对于后来的人来说,这是我的两个班轮示例,帐号为“[email protected]”。这可以安排。
$credentials = new-object Management.Automation.PSCredential “[email protected]”, (“gmail-user's password” | ConvertTo-SecureString -AsPlainText -Force)
Send-MailMessage -From "[email protected]" -to "[email protected]" -Subject "Some subject"
-Body "Some body" -SmtpServer "smtp.gmail.com" -port 587 -UseSsl
-Credential $credentials -Attachments "C:\an-attachment.txt"