Problema al crear un correo electrónico con un archivo adjunto en Javascript

StackOverflow https://stackoverflow.com/questions/553416

  •  23-08-2019
  •  | 
  •  

Pregunta

Estoy iniciando un correo electrónico a crear, mediante una llamada al código de abajo, y la adición de un archivo adjunto a la misma.

Quiero que el usuario sea capaz de escribir en el receipient, y modificar el contenido del mensaje, así que no lo envío inmediatamente.

¿Por qué recibo un RangeError la segunda vez que el método se llama?
(La primera vez que funciona correctamente.)

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

El error se está produciendo en la línea mAts.add. Así que cuando se trata de adjuntar el documento, falla.

También el nombre del archivo (p_file) es una dirección HTTP a una imagen.

No hay solución correcta

Otros consejos

No funciona fuera del IE, el usuario tiene que tener la perspectiva en la máquina y una cuenta configurada en él. ¿Está seguro de que desea enviar un correo electrónico de esta manera?

Estoy intentando que con este pequeño fragmento, y funciona sin problemas:

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

Tenga en cuenta que lo había dejado todos los argumentos opcionales para Attachments.Add(). El método por defecto a la adición de los archivos adjuntos al final, que es lo que parece querer de todos modos.

Se puede tratar este fragmento independiente? Si funciona para usted, por favor haga una reducción paso a paso de su código hacia este mínimo absoluto, y encontrará lo que provoca el error.

primero hacer mItm.display () luego escribir mItm.GetInspector.WindowState = 2; esto funcionará

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top