Domino 9 und frühere Versionen > ND8: Entwicklung
Neuling: Email mit MimeEntity mit Gif von URL
Legolas:
Hallo endiAN (Andreas),
wäre toll von dir, wenn du den funktionierenden Code noch posten würdest.
An dieser Art von Problemen haben sich schon viele versucht.
Danke
Bernd
endiAN:
Hallo Bernd,
tschuldigung, daß es erst jetzt mit der Antwort klappt. Aber die Urlaubszeit...
Habe leider noch nicht die Zeit gehabt, das ganze ins Reine zu schreiben. Wenn jemand noch Fehler sieht, bitte posten.
Der Agent soll einen BIRT-Report aufrufen, der als Quelle eine Notes-DB hat. Das so entstandene Html soll in eine Email gepreßt und verschickt werden.
Danke nochmals für die Hilfe...
Andreas
--- Code: ---
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Agent agent = agentContext.getCurrentAgent();
Database db = agentContext.getCurrentDatabase();
Document doc = db.getDocumentByID(agent.getParameterDocID());
String noteID = agent.getParameterDocID();
String docid = doc.getUniversalID();
String inputLine, inputLine2, pdfExtension = ".pdf", inputLine3;
Document memo = db.createDocument();
session.setConvertMIME(false); // Do not convert MIME to RT
memo.replaceItemValue("Form", "Memo");
// ROOT MIME
// F U N K T I O N I E R T ! ! !
// Das hier erzeugt eine related-root mit multipart-alternative-child
// und daran text-plain- und text-html-child
// Image-Source über cid verknüpft
Stream imageStream = session.createStream();
Stream textStream = session.createStream();
MIMEEntity body = memo.createMIMEEntity();
textStream.writeText("This is a multipart message in MIME format.");
body.setContentFromText(textStream, "multipart/related", MIMEEntity.ENC_NONE);
MIMEHeader header = body.createHeader("Subject");
header.setHeaderVal("MIME message");
header = body.createHeader("To");
header.setHeaderVal("user/domain");
textStream.truncate();
List<String> list = new ArrayList<String>();
List<MIMEEntity> meList = new ArrayList<MIMEEntity>();
MIMEEntity multipartAlternative = body.createChildEntity();
MIMEHeader mr_header = multipartAlternative.createHeader("Content-Type");
mr_header.setHeaderVal("multipart/alternative");
textStream.writeText("text/plain-Teil...");
MIMEEntity textPlain = multipartAlternative.createChildEntity();
textPlain.setContentFromText(textStream, "text/plain", MIMEEntity.ENC_QUOTED_PRINTABLE);
textStream.truncate();
// Html ohne Anhänge einfügen...
String notesURL = "http://srv01:8080/birt-viewer/preview?__report=prtPreview.rptdesign¬esID=" + agent.getParameterDocID() + "&previewType=withoutAttachment";
URL url = new URL(notesURL);
BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream()));
int counter = 1;
while ((inputLine = in.readLine()) != null)
{
if(inputLine.length()>0){
textStream.writeText(inputLine + "\n");
}
counter++;
}
in.close();
counter = 1;
MIMEEntity textHtml = multipartAlternative.createChildEntity();
textStream.writeText("<br><br><img src=\"cid:" + counter + "\">");
textHtml.setContentFromText(textStream, "text/html; charset=UTF-8", MIMEEntity.ENC_IDENTITY_7BIT);
textStream.truncate();
// die URL aus der "list" holen
notesURL = "http://srv02/test.nsf/4d33....6090/a680....1be1/MIME/M1.2?OpenElement";
//Bild einlesen über ImageIO
url = new URL(notesURL);
BufferedImage bufferedImage = ImageIO.read(url);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(baos);
encoder.encode(bufferedImage);
byte [] imageData = baos.toByteArray();
imageStream.write(imageData);
//Child zur vorhergehenden MIMEEntity erzeugen...
MIMEEntity imageChild = body.createChildEntity();
MIMEHeader ic_header = imageChild.createHeader("Content-ID");
ic_header.setHeaderVal("1");
imageChild.setContentFromBytes(imageStream, "image/jpeg", MIMEEntity.ENC_IDENTITY_BINARY);
imageStream.truncate();
memo.send(false, "user/domain");//session.getUserName());
--- Ende Code ---
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln