Agente domino en Java para enviar MIME con attachment

Juan Andres Suarez
13 de Abril del 2004
Alguien ha hecho un agente para domino en java, que envie un correo en MIME y tenga attachment? o se adjuntos???

Juan Andres Suarez
13 de Abril del 2004
Tengo una aplicación que interactua con domino Server y un Agente...

Parte Aplicacion: crea un documento, le llena informacion y se lo pasa al Agente domino...por DIIOP domino R6

//Despues de haberse conectado y aboerto sesion con el Domino Server

Document doc = db.createDocument();
doc.replaceItemValue("Sendto", destinatario);
doc.replaceItemValue("Subject", titulo);
doc.replaceItemValue("CopyTo", copia);
doc.replaceItemValue("BlindCopyTo", copiaoculta);
doc.replaceItemValue("mensaje", mensaje);
doc.replaceItemValue("adjunto", adjunto);
doc.save(true, false);
String noteID = doc.getNoteID();
Agent ag = db.getAgent("amime");
//corre el agente
ag.runOnServer(noteID);
//cierra conexiones
ag.recycle();
doc.recycle();
titulo = null;
adjunto.clear();
destinatario.clear();
copia.clear();
copiaoculta.clear();
mensaje = null;

Agente en el Domino Server:

import lotus.domino.*;
import java.util.*;

public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
//Abrir sesion
Session s = this.getSession();
AgentContext ac = s.getAgentContext();
Database db = ac.getCurrentDatabase();
Agent ca=ac.getCurrentAgent();
//Recibe el documento que se le ha pasado como parametro
String noteid=ca.getParameterDocID();
if((noteid!= " ")&(noteid!=null)){
Document pDoc=db.getDocumentByID(noteid);
if(pDoc!=null){
Document memo = db.createDocument();
memo.replaceItemValue("Form","Memo");
//Saco datos del documento recibido como parametro....
String titulo=pDoc.getItemValueString("Subject");
memo.replaceItemValue("Subject",titulo);
Vector destinatario=(Vector)pDoc.getItemValue("Sendto");
Vector copia=(Vector)pDoc.getItemValue("CopyTo");
memo.replaceItemValue("CopyTo",copia);
Vector copiao=(Vector)pDoc.getItemValue("BlindCopyTo");
memo.replaceItemValue("BlindCopyTo",copiao);
//Vector vanexo=(Vector)pDoc.getItemValue("adjunto");
// No convertir mime a Rich Text
s.setConvertMIME(false);
Stream stream = s.createStream();
MIMEEntity body = memo.createMIMEEntity();
//----------------
//configuracion del contenido para aceptar multiples componentes
MIMEHeader header = body.createHeader("Content-Type");
header.setHeaderVal("multipart/mixed");

//anexo de grafico
MIMEEntity child = body.createChildEntity();
header = child.createHeader("Content-Disposition");
header.setHeaderVal("attachment; filename="monacho.gif"");
stream.writeText("R0lGODlhHAALAKEAAAAAAP/WAP///wAAACH5BAEAAAIALAAAAAAcAAsAAAJAlI+paxHnHorQqQAkjjzDTDWAt43m1jmeiGZgBMaqJLTl+Nj2l+Mv6+rRNkCOykWyNJQ1jOllrK0YRmYixMhqCwA7");
child.setContentFromText(stream, "image/gif",MIMEEntity.ENC_BASE64);
stream.truncate();

//anexo de texto attachment
child = body.createChildEntity();
header = child.createHeader("Content-Disposition");
header.setHeaderVal("attachment; filename="carreta.txt"");
stream.writeText("Este es el texto de mi archivo n y demas cosas...blablabla...y demas carretas....");
child.setContentFromText(stream, "text/plain",MIMEEntity.ENC_NONE);
stream.truncate();

//cuerpo del correo
String mensaje=pDoc.getItemValueString("mensaje");
child = body.createChildEntity();
stream.writeText(mensaje);
child.setContentFromText(stream, "text/html",MIMEEntity.ENC_NONE);
stream.truncate();
//-----------------

//Envio del documento
memo.send(false,destinatario);
s.setConvertMIME(true); // Restore conversion
}
}
ca.recycle();
db.recycle();
ac.recycle();
s.recycle();
}catch(NotesException n){
System.out.println("Error en Agente "+n.id);
System.out.println("Error mensaje: "+n.text);
}catch(Exception e) {
System.out.println("Error e: "+e.getMessage() );
}
}
}