import lotus.domino.*;
import java.io.*;
import java.util.*;
public class JavaAgent extends
AgentBase {
private MIMEEntity mime;
private int byteNumber;
private int count;
private byte byteArray[];
public void NotesMain() {
PrintWriter pw = getAgentOutput();
pw.println("<result>");
try {
Session curSession =
getSession();
AgentContext agentContext =
curSession.getAgentContext();
Database curDb =
agentContext.getCurrentDatabase();
Document contextDoc =
agentContext.getDocumentContext();
String qs = contextDoc.
getItemValueString
("Query_String_Decoded");
int pos = qs.indexOf("=");
String unid = qs.substring
(pos+1,qs.length());
// pw.println("Docunid:"+
unid+"</br>");
Document curDoc = curDb.
getDocumentByUNID(unid);
String mailBody =
curDoc.getItemValueString("Body");
// pw.println("mailBody:"+
mailBody+"</br>");
String mailSubject =
curDoc.getItemValueString("subject");
// pw.println("mailSubject:"+
mailSubject+"</br>");
String mailSendTo =
curDoc.getItemValueString("sendTo");
// pw.println("mailSendTo:"+
mailSendTo+"</br>");
//Vector vToTrue = curDoc.
getItemValue("SendTo");
Document mailDoc =
curDb.createDocument();
mailDoc.replaceItemValue
("Form", "Memo");
//Creeer multipart
//"multipart/alternative"
curSession.setConvertMIME(false);
// Block conversion
Stream multiStream = curSession.
createStream();
multiStream.writeText("Dit is een
multipart bericht");
MIMEEntity mimeRoot =
mailDoc.createMIMEEntity();
MIMEHeader header = mimeRoot.
createHeader("Content-Transfer-Encoding");
//mailinfo
header = mimeRoot.createHeader
("Subject");
header.setHeaderVal(mailSubject);
header = mimeRoot.createHeader
("To");
header.setHeaderVal(mailSendTo);
mimeRoot.setContentFromText
(multiStream,"multipart/related",
MIMEEntity.ENC_NONE);
multiStream.close();
//afbeeldingen toevoegen
/*
Stream imageStream = curSession.
createStream();
EmbeddedObject file = curDoc.
getAttachment("closeIcon.gif");
InputStream fileStream =
file.getInputStream();
byteArray = new byte[fileStream.
available()];
byteNumber = fileStream.read();
count = 0;
while(byteNumber > -1){
Integer byteInteger = new Integer
(byteNumber);
byteArray[count] = byteInteger.
byteValue();
byteNumber = fileStream.read();
count += 1;
}
imageStream.write(byteArray);
mime = mimeRoot.
createChildEntity();
header = mime.createHeader
("Content-Disposition");
header.setHeaderVal("inline;
filename=closeIcon.gif");
header = mime.createHeader
("Content-ID");
header.setHeaderVal
("<closeIcon.gif>");
//header.setHeaderVal("closeIcon.gif");
header = mime.createHeader
("Content-Transfer-Encoding");
header.setHeaderVal("Base64");
mime.setContentFromBytes
(imageStream,"image/gif",
MIMEEntity.ENC_NONE);
//mime.encodeContent(MIMEEntity.
ENC_BASE64);
imageStream.close();
*/
//html toevoegen
Stream htmlStream = curSession.
createStream();
mime = mimeRoot.createChildEntity();
htmlStream.writeText(mailBody);
mime.setContentFromText(htmlStream,
"text/html;charset=ISO-8859-1",
MIMEEntity.ENC_NONE);
htmlStream.close();
//email verzenden
mailDoc.send(false);
curSession.setConvertMIME(true);
// Restore conversion
pw.println("<status>true
</status>");
pw.println("<message>Correct
uitgevoerd</message>");
} catch( Exception e) {
pw.println("<status>false
</status>");
pw.println("<message>"+
e.toString()+"</message>");
e.printStackTrace();
}
//einde html output
pw.println("</result>");
}
}
Do you have comments on this tip? Let us know.
This was first published in April 2004