Cris_Master
Usuario (México)

Hola amigos de Taringa. Hace algunos meses tuve la necesidad de crear un script con Javascript que genere y envíe un correo electrónico a través de un cliente Lotus Notes con archivos adjuntos. Me costó mucho trabajo lograrlo, pero al fin lo conseguí; es por eso que se me ocurrió compartirlo con ustedes. Espero que les sea de utilidad. 1 Crear el script en Javascript que recibe los datos para enviar el correo electrónico con archivos adjuntos. function SendHTMLMail(mToMail, mCcpMail, mCcoMail, mSub, mMsg, pdfAttach) { try { Session = new ActiveXObject('Notes.NotesSession'); if(Session != null) { UserName = Session.UserName; Session.ConvertMIME = false; MailDbName = UserName.substring(0, 1) + UserName.substring(UserName.indexOf(' ', 1) + 1, UserName.length) + '.nsf'; Maildb = Session.GetDatabase('', MailDbName); if(Maildb.IsOpen != true) Maildb.OPENMAIL(); MailDoc = Maildb.CREATEDOCUMENT(); MailDoc.Form = 'Memo'; MailDoc.Subject = mSub; MailDoc.sendto = mToMail; if(mCcpMail != '') MailDoc.copyTo = mCcpMail; if(mCcoMail != '') MailDoc.BlindCopyTo = mCcoMail; Stream = Session.CreateStream(); Body = MailDoc.CreateMIMEEntity(); childHTML = Body.CreateChildEntity(); Stream.WriteText(mMsg); childHTML.SetContentFromText(Stream, 'text/html; charset = ISO-8859-1', 1731); Stream.Close(); Stream.Open(pdfAttach, 'binary'); childPDF = Body.CreateChildEntity(); header = childPDF.CreateHeader('Content-disposition'); header.SetHeaderVal('attachment; filename = "PDF.pdf"'); childPDF.SetContentFromBytes(Stream, 'application/octet-stream; name="PDF.pdf"', 1729); Stream.Close(); Session.ConvertMIME = true; MailDoc.SAVEMESSAGEONSEND = false; MailDoc.Send(false); MailDoc.Save(false, true); } } catch(err) { if(err == '[object Error]') alert('Error while sending mail, Please check Lotus Notes installed in your system'); else alert('Error while sending mail'); } } Nota: A modo de ejemplo estoy poniendo un archivo adjunto *.pdf, pero se puede hacer con cualquier tipo de archivo. Nota2: Si alguien sabe como modifico el formato de mi código para que en el post salga legible se los agradezco, no pude formatearlo como si se tratara de un IDE. 2 Llamar el script para enviar correos electrónicos. El script que acabamos de crear funciona en base a la siguiente sintaxis: SendHTMLMail(, , [blind_copy], , [hmtl_content], [attach_pdf]) to A quien se le envia el correo. copy Quien recibe copia del correo. blind_copy Quien recibe copia oculta del correo. subject Asunto del correo. html_content Contenido del correo (debe ser codigo html). attach_pdf Archivo *.pdf adjunto. 3 Tips. a) Es posible pasar el formato del correo electrónico a través de la construcción de un archivo; por ejemplo, que la aplicación principal construya el cuerpo del correo (código html en un archivo) y la aplicación/módulo que envia los correos obtenga el contenido de ese archivo y se lo pase a la función SendHTMLMail. b) Es posible adjuntar tantos archivos como se requieran y de cualquier tipo (obviamente es necesario modificar el código que les muestro); adjunté un archivo *.pdf sólo como ejemplo. c) En la web no hay mucha información de esto; así que consideren visitar los sitios que les pongo en fuentes de información. 4 Fuentes de información. - http://www.codeproject.com/KB/scripting/MailFromJavaScript.aspx - http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp