使用 PowerShell 发送电子邮件
Windows PowerShell 是一个命令行 shell,用于解决 Windows 中的一些管理任务以及在此操作系统上运行的应用程序。通用脚本语言允许你定制 cmdlet 以执行特定功能。
发送电子邮件就是其中之一。本文将讨论使用 Windows PowerShell 发送电子邮件和处理此方法的其他方式。
在 PowerShell 中使用 Send-MailMessage
Cmdlet 发送电子邮件
这是一个基于 Send-MailMessage
cmdlet 的示例,你现在可以使用 SMTP 协议从 PowerShell 发送电子邮件。
Send-MailMessage -To "user@contoso.com" -From "user@abccompany.net" -Subject "Hello!" -Body "This is important" -Credential (Get-Credential) -SmtpServer "smtp.gmail.com" -Port 587
我们只需要插入发件人和收件人的电子邮件地址,并指定我们要使用的 SMTP 服务器。
Send-MailMessage
cmdlet 还允许你使用命令的许多参数在电子邮件中添加更多详细信息。这是我们可以使用 cmdlet 使用的参数列表。
参数 | 参数描述 |
---|---|
-To |
目标收件人的电子邮件地址。 |
-Bcc |
将被 Blind Carbon 复制的电子邮件地址。 |
-Cc |
将被碳复制的电子邮件地址。 |
-From |
发件人或源电子邮件地址。 |
-Subject |
电子邮件的主题。 |
-Body |
电子邮件的正文。 |
-BodyAsHTML |
表示电子邮件的正文具有 HTML 标记。 |
-Attachments |
要附加到名称的文件名。 |
-Credential |
用于发送电子邮件的凭据。 |
-SMTPServer |
SMTP 服务器的名称。 |
-Port |
SMTP 服务器端口。 |
-UseSSL |
发送电子邮件时将使用安全套接字层 (SSL) 协议。 |
你可以先将参数值分配给变量,然后再将它们插入命令行以便于阅读。
$From = "user@abccompany.net"
$To = "user@contoso.com"
$Copy = "manager@contoso.com"
$Attachment = "C:\Temp\file.jpg"
$Subject = "Photos of Drogon"
$Body = "<br>Please see attached picture for reference."
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "465"
Send-MailMessage -From $From -to $To -Cc $Copy -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -UseSsl -Credential (Get-Credential) -Attachments $Attachment
默认情况下,Send-MailMessage
命令尝试通过标准 SMTP 端口 TCP 25 发送电子邮件。
但是,假设你的 SMTP 服务器只允许使用加密协议发送电子邮件。在这种情况下,我们可以最频繁地指定端口号;它是 465 或 587 和 -UseSSL
开关参数。
下表显示了流行的公共电子邮件提供商的 SMTP 服务器参数列表,我们可以使用这些参数从 Windows PowerShell 发送消息(请注意,我们必须允许在帐户界面中通过 SMTP 发送电子邮件):
服务 | SMTP 服务器 | 端口 | 连接 |
---|---|---|---|
Gmail | smtp.gmail.com |
587 | TLS |
25 | TLS | ||
465 | SSL | ||
Office 365 | smtp.office365.com |
587 | TLS |
25 | TLS | ||
Outlook.com | smtp-mail.outlook.com |
587 | TLS |
25 | TLS | ||
雅虎邮箱 | smtp.mail.yahoo.com |
587 | TLS |
25 | TLS | ||
465 | SSL | ||
Windows Live Hotmail | smtp.live.com |
587 | TLS |
25 | TLS | ||
Zoho | smtp.zoho.com |
587 | TLS |
465 | SSL |
相关文章
在 Windows PowerShell 中获取命令行参数
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。
Windows PowerShell 中的 Base64 编码
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
在 Windows PowerShell 中写入输出
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
在 Windows PowerShell 中设置 PATH 环境变量
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 Windows PowerShell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
在 Windows PowerShell 中打印环境变量
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 Windows PowerShell 命令打印它们。
在 PowerShell 中注释代码
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
在 PowerShell 中执行 LDAP 查询
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 Active Directory 过滤器和 LDAP 过滤器。