[英]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.