我通过调用下面的代码并添加附件来启动电子邮件创建。
我希望用户能够输入收件人并修改消息的内容,所以我不会立即发送它。
为什么第二次调用该方法时会出现 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 地址。
最佳答案
不能在 IE 之外工作,用户需要在机器上安装 Outlook 并在其上配置一个帐户。您确定要以这种方式发送电子邮件吗?
关于javascript - 在 Javascript 中创建带有附件的电子邮件时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/553416/