【发布时间】:2009-02-16 14:10:27
【问题描述】:
我正在通过调用下面的代码并添加附件来启动电子邮件创建。
我希望用户能够输入收件人,并修改消息的内容,所以我不会立即发送。
为什么我在第二次调用该方法时会收到 RangeError?
(第一次正常工作。)
function NewMailItem(p_recipient, p_subject, p_body, p_file, p_attachmentname)
{
try
{
var objO = new ActiveXObject('Outlook.Application');
var objNS = objO.GetNameSpace('MAPI');
var mItm = objO.CreateItem(0);
mItm.Display();
if (p_recipient.length > 0)
{
mItm.To = p_recipient;
}
mItm.Subject = p_subject;
if (p_file.length > 0)
{
var mAts = mItm.Attachments;
mAts.add(p_file, 1, p_body.length + 1, p_attachmentname);
}
mItm.Body = p_body;
mItm.GetInspector.WindowState = 2;
} catch(e)
{
alert('unable to create new mail item');
}
}
错误发生在 mAts.add 行上。因此,当它尝试附加文档时,它会失败。
文件名 (p_file) 也是图像的 http 地址。
【问题讨论】:
-
在 JavaScript 中甚至可以远程实现这一点让我感到害怕。
-
这是一个受信任的网站,位于 Intranet 上,但我知道您的意思。
-
@scunliffe:在 JavaScript 中一切皆有可能。毕竟我是一门编程语言。在这种情况下,它是 JScript,它甚至不会在不受信任的环境中运行。
标签: javascript outlook