Domino 9 und frühere Versionen > ND8: Entwicklung

Neuling: Email mit MimeEntity mit Gif von URL

<< < (4/4)

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&notesID=" + 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