我通过调用下面的代码并添加附件来启动电子邮件创建。

我希望用户能够输入收件人并修改消息的内容,所以我不会立即发送它。

为什么第二次调用该方法时会出现 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/

10-11 22:04