PowerShell 技能连载 - 通过 Outlook 发送邮件

您可以用 Send-MailMessage 通过任何 SMTP 服务器放松右键。不过,如果您希望使用 Outlook 客户端,例如要访问地址簿、使用公司的 Exchange 服务器,或者将邮件保存到邮件历史中,那么可以通过这个快速方法来实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function Send-OutlookMail
{
param
(
[Parameter(Mandatory=$true)]
$To,

[Parameter(Mandatory=$true)]
$Subject,

[Parameter(Mandatory=$true)]
$BodyText,

[Parameter(Mandatory=$true)]
$AttachmentPath
)


$outlook = New-Object -ComObject Outlook.Application
$mail = $outlook.CreateItem(0)
$mail.Subject = $Subject
$mail.to = $To

$mail.BodyFormat = 1 # use 2 for HTML mails
$mail.Attachments.Add([object]$AttachmentPath, 1)
$mail.building = $BodyText
$mail.Display($false)
}

这只是一个基本的模板,您可以投入一些时间使它变得更好。例如,当前版本总是需要一个附件。在更复杂的版本中,您可以使附件变成可选的,并且支持多个附件。或者寻找一种方法发送邮件而不需要用户交互。

PowerShell 技能连载 - 通过 Outlook 发送邮件

http://blog.vichamp.com/2019/01/02/sending-emails-via-outlook/

作者

吴波

发布于

2019-01-02

更新于

2022-07-06

许可协议

评论