如何使用PowerShell发送电子邮件
我想从PowerShell发送电子邮件, 所以我使用这个命令:如何使用PowerShell发送电子邮件,powershell,smtp,Powershell,Smtp,我想从PowerShell发送电子邮件, 所以我使用这个命令: $EmailFrom = "customer@yahoo.com" $EmailTo = "receiver@ymail.com" $Subject = "today date" $Body = "TODAY SYSTEM DATE=01/04/2016 SYSTEM TIME=11:32:05.50" $SMTPServer = "smtp.mail.yahoo.com" $SMTPClient = New-Object N
$EmailFrom = "customer@yahoo.com"
$EmailTo = "receiver@ymail.com"
$Subject = "today date"
$Body = "TODAY SYSTEM DATE=01/04/2016 SYSTEM TIME=11:32:05.50"
$SMTPServer = "smtp.mail.yahoo.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object
System.Net.NetworkCredential("customer@yahoo.com", "password")
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
此命令不适用于Yahoo mail或Outlook mail,但适用于我的Gmail。
我做错了什么吗?下面的代码片段对我来说非常有用:
我用这个:
Send-MailMessage -To hi@abc.com -from hi2@abc.com -Subject 'hi' -SmtpServer 10.1.1.1
有时您可能需要将EnableSsl设置为false(在这种情况下,邮件将通过网络以未加密的方式发送)您只需使用Gmail smtp即可 以下是用于发送带有附件的gmail邮件的powershell代码:
$Message = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient("smtp.gmail.com", 587)
$smtp.Credentials = New-Object System.Net.NetworkCredential("From@gmail.com", "password");
$smtp.EnableSsl = $true
$smtp.Timeout = 400000
$Message.From = "From@gmail.com"
$Message.To.Add("To@gmail.com")
$Message.Attachments.Add("C:\foo\attach.txt")
$smtp.Send($Message)
在发送者Google帐户上(From@gmail.com),
确保您已打开“访问不太安全的应用”选项,
从谷歌帐户安全仪表板
最后,将此脚本另存为mail.ps1
要调用上述脚本,请在命令提示符或批处理文件上运行以下命令:
Powershell.exe -executionpolicy remotesigned -File mail.ps1
默认情况下,发送大型附件的超时时间大约为100秒。
在这个脚本中,时间增加到5或6分钟左右顺便说一句,你需要允许在你的gmail帐户设置中访问不太安全的应用程序。它至少可以与gmail一起工作。嗨,我正在尝试在email.ps1文件中使用Sean的解决方案,并使用PowerShell.exe-NoProfile-ExecutionPolicy绕过C:\email.ps1从命令行运行它,但我一直收到一个关于身份验证的错误。我使用的是正确的密码,用户名是我用@gmail.com和不使用的gmail用户名。希望你能帮上忙好吧,这不是谷歌的代码,我必须用我的gmail帐户登录,然后从这里找到“允许不太安全的应用:”打开“允许不太安全的应用:”并收到我的邮件!谢谢您好,我如何将CC添加到此中?我尝试了许多组合的
$message.Cco.Add(“emailaddress”)
,但都无法运行。我如何添加超过1个附件?我只是在学习PS,我不知道命令存在。您如何为它设置一个特定的时间,使用上述代码的示例-例如,在下午4:00发送电子邮件。fyi此命令已过时,因为它无法保证安全连接。有关更多信息,请参见本页:参数确实存在,但它对我有效。这就是我写这篇文章的原因。如果这些解决方案都不适用于您,请另找一篇文章。
Powershell.exe -executionpolicy remotesigned -File mail.ps1