문제

아래 코드를 호출하고 첨부 파일을 추가하여 이메일 작성을 시작하고 있습니다.

사용자가 영수증을 입력하고 메시지의 내용을 수정할 수 있기를 원하므로 즉시 보내지 않습니다.

왜 메소드가 호출되는지 두 번째 시간에 범위에 등록하는 이유는 무엇입니까?
(처음으로 올바르게 작동합니다.)

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 외부에서는 작동하지 않으므로 사용자는 컴퓨터에 대한 전망과 계정에 구성된 계정이 있어야합니다. 이 방법으로 이메일을 보내고 싶습니까?

나는이 작은 스 니펫으로 그것을 시도하고 있으며 완벽하게 작동합니다.

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 ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top