javascript - 使用 Outlook 通过电子邮件发送临时文件

标签 javascript email outlook wsh jscript

我想创建一个文件,将其作为附件通过电子邮件发送,然后使用 JScript 删除该文件。

问题在于,过早删除文件会阻止 Outlook 将文件附加到电子邮件。

我将创建一个 MailItem 并使用类似以下代码的内容显示它。电子邮件不会自动发送,但会显示出来,以便用户可以在必要时进行编辑。

var outlook = new ActiveXObject("Outlook.Application");
var msg = outlook.CreateItem(0);
msg.Recipients.Add(toAddress);
msg.Subject = subject;
msg.htmlbody = body;
msg.Attachments.Add(attachment);
msg.Display();

我的问题是,什么时候可以安全地删除附件文件?我知道 MailItem 有事件,我可以在 AttachmentAdd 事件中删除附件文件。但是,据我所知,无法在 JScript 中订阅 ActiveXObject 事件。

我的想法:

  • 如果 Attachments.Add 是同步的(或者 Display 会等待所有附件被读取),我可以立即删除该文件
  • 我可以睡 x 秒,然后删除该文件。
  • 也许有一种订阅事件的方法,但我还没有找到。

详细信息:

出于所有意图和目的,此脚本在 wscript 中运行。

这并不特定于任何 Outlook 版本。它应该适用于任何版本。

我还将在电子邮件中附加几个其他文件。

如果您有疑问,请提出。

最佳答案

我尝试了以下代码并且它有效。

var fso = new ActiveXObject("Scripting.FileSystemObject");

var outlook = new ActiveXObject("Outlook.Application");
var msg = outlook.CreateItem(0);
msg.Subject = "Subject";
msg.Body = "Body";
msg.Attachments.Add(file);
fso.DeleteFile(file); // No problems.
msg.Display();

文档中没有提到它,但 Attachments.Add() 似乎是同步的。

关于javascript - 使用 Outlook 通过电子邮件发送临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251596/

相关文章:

javascript - 为什么我不能将这些变量放在全局范围内?它只适用于本地。

outlook - 是否可以使用 Office Add In 以编程方式访问 Outlook 中的联系人列表

java - 使用 Java API 在 Lotus Notes 上进行 session 邀请

JavaScript 网络图可视化

javascript - 具有不同值的 Mongodb 多更新

javascript - 在没有 jQuery 的情况下防止双击缩放

email - Google 脚本 - 发送电子邮件警报

c# - 通过 Gmail 在 .NET 中发送电子邮件

C# 使用隐式 ssl 发送电子邮件

vba - 如果正文包含字符串,则删除签名