Sending Images in Emails

Hello,

I got the following java agent code to work on one server but not another. The image loaded properly in the email using the one server. On the other server however, the image did not get placed in the email. Does anyone have a clue as to why this might be? I’m trying to compare server and messaging documents right now. Can anyone narrow down what I should be looking for, or if I’m even looking in the right place?

import lotus.domino.*;

import java.io.*;

import java.util.*;

import java.awt.Event;

import java.net.*;

import java.applet.Applet;

import java.lang.*;

import java.io.PrintWriter;

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(“”);

try {

Session curSession = getSession();

AgentContext agentContext = curSession.getAgentContext();

Database curDb = agentContext.getCurrentDatabase();

Document contextDoc = agentContext.getDocumentContext();

String unid = “4B458C71A41E37698526742600696DB5”;

Document curDoc = curDb.getDocumentByUNID(unid);

String mailBody = curDoc.getItemValueString(“Body”);

String mailSubject = curDoc.getItemValueString(“Subject”);

String mailSendTo = “me@me.com”;

Document mailDoc = curDb.createDocument();

mailDoc.replaceItemValue(“Form”, “Memo”);

curSession.setConvertMIME(false);

// Block conversion

Stream multiStream = curSession.createStream();

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();

//**************************************************************************************************************

Stream imageStream = curSession.createStream();

EmbeddedObject file = curDoc.getAttachment(“top3.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();

mime.setContentFromBytes(imageStream,“image/gif”,MIMEEntity.ENC_NONE);

imageStream.close();

 //**************************************************************************************************************

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(“”);

} catch( Exception e) {

pw.println(“false”);

pw.println(“”+e.toString()+“”);

e.printStackTrace();

}

//einde html output

pw.println(“”);

}

}

Subject: RE: Sending Images in Emails

“the image did not get placed in the email” is a little vague. Did the email end up being MIME-formatted? Was it delivered internally or externally via the internet?

It’s hard to see how the image could not be in there unless it’s getting converted to plain-text – no MIME data at all. Why else would the server mess with the MIME data?