我想创建一个文件,将其作为附件通过电子邮件发送,然后使用 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/