簡體   English   中英

在Javascript中創建帶附件的電子郵件時出現問題

[英]Problem creating an email with an attachment in Javascript

我正在通過調用下面的代碼啟動電子郵件創建,並為其添加附件。

我希望用戶能夠輸入收據,並修改郵件的內容,所以我不會立即發送。

為什么第二次調用方法時會得到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並在其上配置帳戶。 您確定要以這種方式發送電子郵件嗎?

我正在嘗試使用這個小片段,它完美無缺:

var objO = new ActiveXObject('Outlook.Application');
var mItm = objO.CreateItem(0);

var mAts   = mItm.Attachments;
var p_file = [
  "http://stackoverflow.com/content/img/vote-arrow-up.png",
  "http://stackoverflow.com/content/img/vote-arrow-down.png"
];
for (var i = 0; i < p_file.length; i++) {
  mAts.add(p_file[i]);
}

請注意,我中斷了Attachments.Add()所有可選參數。 該方法默認在最后添加附件,這是您似乎想要的。

你能試試這個獨立的片段嗎? 如果它適合您,請逐步將代碼減少到這個絕對最小值,您將找到導致錯誤的原因。

先做mItm.display()然后寫mItm.GetInspector.WindowState = 2; 這會奏效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM