使用PowerShell脚步发送邮件

使用PowerShell脚步发送邮件

 

目录

一、    使用PowerShell脚步通过126发送邮件    2

1、    代码详解    2

2、    Powershell脚步    3

二、    使用PowerShell脚步通过office 365发送邮件    3

1、    代码详解    3

2、    Powershell脚步    4

三、    通过BAT脚步调用PowerShell脚步发送邮件    4

 

  1. 使用PowerShell脚步通过126发送邮件
    1. 代码详解

适用于场景:

  • 126、163、QQ等邮箱。
  • 不启用SSL,使用25端口
  • Password是授权码而不是邮箱密码
  1. ######################################################################
  2. ###########Define Variables########
  3. $From = "发件人邮箱账号@126.com"
  4. $To = "收件人邮箱账号@126.com"
  5. $Subject = "邮件主题
  6. $Body = "邮件内容"
  7. $smtpServer = "smtp.126.com"
  8. $smtpPort = 25
  9. $username = "发件人邮箱账号@126.com "
  10. $password = "不是登录密码而是授权码,授权需要登录126去开启并生成"
  11. ###########邮件信息,包含发件人、收件人、主题和邮件内容########
  12. $SMTPMessage = New-Object System.Net.Mail.MailMessage($From, $To, $Subject, $Body)
  13. ###########如需增加附件,请追加附件的路径########
  14. $attachment = New-Object System.Net.Mail.Attachment("C:\log\CreationFRM.log")
  15. $SMTPMessage.Attachments.Add($attachment)
  16. ###########SMTP服务器和端口########
  17. $SMTPClient = New-Object Net.Mail.SmtpClient($smtpServer, $SmtpPort)
  18. ##########不启用SSL########
  19. $SMTPClient.EnableSsl = $false 
  20. ###########用户凭证########
  21. $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($username, $password); 
  22. ##########发送邮件########
  23. $SMTPClient.Send($SMTPMessage)
  24. ###########Define Variables########
  25. Powershell脚步

按提示更新脚步中的内容。

  1. 使用PowerShell脚步通过office 365发送邮件
    1. 代码详解

适用于场景:

  • office365等邮箱
  • 启用SSL,使用587端口
  • Password就是邮箱密码不是授权码
  1. ######################################################################
  2. ###########Define Variables########
  3. # 加密明文密码
  4. $encryptedPassword = ConvertTo-SecureString "Wsry.2020" -AsPlainText -Force
  5. # 通过加密的密码和账号创建邮件凭证
  6. $mycreds = New-Object System.Management.Automation.PSCredential ("[email protected]", $encryptedPassword)
  7. #邮件主题及内容
  8. $Subject = "邮件主题Hello World"
  9. $Body = "Hello World,<br/>This is your first e-mail<br/>Kind"
  10. # Send the e-mail (should take less than 5 seconds)
  11. Send-MailMessage -From "[email protected]" -To "[email protected]" -SmtpServer "smtp.office365.com" -Credential $mycreds -UseSsl $Subject -Port "587" -Body $Body
  12. ######################################################################
  13. Powershell脚步

按提示更新脚步中的内容。

 

  1. 通过BAT脚步调用PowerShell脚步发送邮件

此BAT脚本需和PowerShell脚本在同一目录下,然后在BAT直接调用

PowerShell脚本就可以了。

  1. ######################################################################
  2. @echo off
  3. pushd %~dp0
  4. powershell.exe -command ^
  5. "& {set-executionpolicy Remotesigned -Scope Process; .'.\Sendmail.ps1'}"
  6. popd
  7. exit
  8. ######################################################################

 

猜你喜欢

转载自blog.51cto.com/monty/2547401