Frage

Ich initiieren eine E-Mail erstellen, indem Sie den Code unten Aufruf und das Hinzufügen einer Anlage zu.

Ich mag, dass die Benutzer in der Lage sein, in den receipient eingeben und den Inhalt der Nachricht ändern, so schicke ich es nicht sofort.

Warum erhalte ich einen Auslöser Range das zweite Mal, wenn die Methode aufgerufen wird?
(Das erste Mal ist es richtig funktioniert.)

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'); 
   } 
}

Der Fehler auf der mAts.add Leitung auftritt. Also, wenn es versucht, das Dokument anzubringen, es funktioniert nicht.

Auch der Dateiname (p_file) ist eine http-Adresse zu einem Bild.

Keine korrekte Lösung

Andere Tipps

Wird nicht außerhalb von IE funktionieren, muss der Benutzer Outlook auf dem Rechner haben und ein Konto auf konfiguriert. Sind Sie sicher, dass Sie eine Benachrichtigung, auf diese Weise schicken?

ich es mit diesem kleinen Schnipsel ich versuche, und es funktioniert einwandfrei:

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]);
}

Beachten Sie, dass ich weg zu Attachments.Add() alle optionalen Argumente gelassen. Die Methode standardmäßig das Hinzufügen der Anhänge am Ende, das ist, was Sie scheinen irgendwie zu wollen.

Können Sie den Standalone-Schnipsel versuchen? Wenn es für Sie arbeitet, wählen Sie bitte eine Schritt-für-Schritt Reduktion des Codes auf dieses absolute Minimum tun, und Sie werden feststellen, was den Fehler verursacht.

als erstes tun mItm.display () dann schreiben mItm.GetInspector.WindowState = 2; dies funktioniert

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top