You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C++Builder 12启动带附件的Outlook 365客户端?

解决Outlook 365通过ShellExecute启动并添加附件的问题

问题根源

你使用的mailto协议的Attach参数在Outlook 365中已被安全策略禁用——微软为防范恶意程序通过mailto协议读取或添加本地文件,限制了该参数的功能,因此这种方式无法生效。

可行方案:直接调用Outlook.exe命令行参数

通过直接调用Outlook的可执行文件,并使用官方支持的命令行参数,可绕过mailto的限制,实现启动Outlook并附带附件、收件人、主题和正文的需求。

示例代码

ShellExecuteA(0, "open", "outlook.exe", 
    "/c ipm.note /m <email>@<domain>.com?subject=Hello&body=Hello%20world /a \"c:\\temp\\test.pdf\"", 
    0, SW_SHOWNORMAL);

参数说明

  • /c ipm.note:指定创建一封新的普通邮件
  • /m <mailto链接>:通过mailto链接设置收件人、主题和正文,格式与你之前使用的一致
  • /a "文件路径":添加指定路径的附件,多个附件可重复使用/a参数,例如/a "c:\\temp\\test.pdf" /a "c:\\temp\\report.docx"

注意事项

  • 文件路径必须是绝对路径,C++代码中需用双反斜杠\\转义
  • 若路径包含空格,必须用双引号包裹,例如/a \"c:\\my docs\\test.pdf\"
  • 若Outlook安装路径未加入系统环境变量,需指定outlook.exe完整路径(通常为C:\\Program Files\\Microsoft Office\\root\\Office16\\OUTLOOK.EXE,依Office版本略有不同)

内容的提问来源于stack exchange,提问作者SteveR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:47:38