1

我想创建一个文件,将其作为附件通过电子邮件发送,然后使用 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 事件中删除附件文件。但是,AFAIK,没有办法订阅 JScript 中的 ActiveXObject 事件。

我的想法:

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

细节:

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

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

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

如果你有问题,就问吧。

4

1 回答 1

0

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

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()似乎是同步的。

于 2012-04-27T15:35:21.467 回答