从命令行启动Outlook并预填写电子邮件

25

这个有可能实现吗? 我想要预先填好收件人、正文和附件,这样用户只需要点击发送即可。谢谢!

3个回答

47

打开新邮件消息(ipm.note是电子邮件的消息类别

outlook.exe /c ipm.note
打开一个新的邮件信息并填写发件人:
outlook.exe /c ipm.note /m someone@microsoft.com

打开带有附件的新邮件:

 outlook.exe /c ipm.note /a filename

组合键:(在Office 2016中第一个无效,第二个有效)

 outlook.exe /c ipm.note /m someone@microsoft.com&subject=test%20subject&body=test%20body
 outlook.exe /c ipm.note /m "someone@microsoft.com&subject=test%20subject&body=test%20body"

使用 %20 生成空格。

例如,在经典 Outlook 2016(版本 16.0.4849.1000)中有效。

但是,正如Snozzlebert评论中指出的那样,对于 Outlook 365 Version 2001 (Build 12430.20184) ,语法应为:

outlook.exe /c ipm.note /m "someone@microsoft.com?subject=test"
罪魁祸首是电子邮件地址后的&符号-用?替换它解决了问题。看起来微软将语法更改为HTML邮件发送语法。

1
太棒了!但它不允许你附加文件并填写电子邮件的收件人/正文。试一下,它不起作用。此外,/m参数的值应该用引号括起来。我不得不这样做才能让它工作,因为显然&对于shell解释器有意义。谢谢! - skb
@Mowgli 不太确定,实际上。这可能是一个新问题的基础。 - VonC
@VonC 很抱歉在现有主题中提问,但我昨天整天都在搜索,没有找到解决方案,只有这篇帖子与之密切相关,而您似乎是最有经验的285k用户,所以我才问。我仍然会在Outlook和CMD部分开始另一个新问题。谢谢。 - Mowgli
@Mowgli 我理解你的问题,并且你在这里先问是正确的,但是(因为我没有立即的答案),一个单独的问题(附带链接回到这个问题)会更有效。 - VonC
1
@Snozzlebert 写下这篇答案11年后(现在),我刚刚在工作中使用Outlook 2016(版本16.0.4849.1000)测试了一下。它仍然有效。我不知道2001版本是否有效。 - VonC
显示剩余7条评论

9

如果你在/m命令后加上双引号,你就可以同时附加文件并预填写收件人/正文内容。

例如:

outlook.exe /c ipm.note /m "someone@microsoft.com&subject=test%20subject&body=test%20body" /a test.txt

+1 是的,只需要引号,不需要复杂的东西。 - cctan

3

VonC 的解决方案是可行的,但正如 skbergam 在评论中指出的那样,它不允许添加附件。

如果像我一样,这很重要,那么以下 WSH 代码可以实现。

Set olApp = CreateObject("Outlook.Application")
Set olMsg = olApp.CreateItem(0)

With olMsg
  .To = "test@testing.com"
  '.CC = "cc@testing.com"
  '.BCC = "bcc@testing.com"
  .Subject = "Subject"
  .Body = "Body"
  .Attachments.Add "C:\path\to\attachment\test.txt" 

  .Display
End With

我已经尝试过在Outlook2003中使用它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接