357 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
 
Latest 7 Posts
Long Term Storage and Retention
Thu, Aug 14th 2014 150
Time stamped encrypted archives
Wed, Aug 13th 2014 151
Designing a REST API for eMail
Sat, Aug 9th 2014 244
Running vert.x with the OpenNTF Domino API
Wed, Aug 6th 2014 212
Workflow for beginners, Standards, Concepts and Confusion
Thu, Jul 24th 2014 246
Warriors of Light
Sun, Jul 20th 2014 234
Adventures with vert.x, 64Bit and the IBM Notes client
Thu, Jul 17th 2014 220
Top 10
Domino Development - Back to Basics - Part 5: Finding data - Collections and Search
Thu, Jan 2nd 2014 1200
Let's ditch IBM Notes and Domino
Thu, May 29th 2014 755
You want to move to Domino? You need a plan!
Thu, Apr 17th 2014 521
MongoDB to switch to IBM storage backend
Tue, Apr 1st 2014 514
CRM > Sales Tracking
Sun, May 5th 2013 457
Fun with {{Mustache}} and Notes Forms
Wed, Mar 12th 2014 446
Domino Design Pattern: Secret documents
Thu, Apr 17th 2014 433
Documents vs eMails
Fri, Jul 4th 2014 393
Rethinking Social Software
Sat, Mar 1st 2014 347
CKEditor and Mustache become friends
Tue, Apr 8th 2014 339


Importing EML files into Notes (lots of them)
Stephan H Wissel    

My friend and Lotus Champion Weerapong Panpai from Zenith in Thailand asked me "How difficult is it to do a bulk import of eml files into Lotus Notes"? MIME as a format is plain ASCII, so on first look it seems simple.
However on a closer look you might guess where the author of an outstanding movie got his inspiration from. RFC 2045 nicely states:"NOTE: The previous four definitions are clearly circular. This is unavoidable, since the overall structure of a MIME message is indeed recursive." So trying to parse that messages on my own was clearly out of the question. Luckily there is ready code available. On one side there is JavaEE and the the MimeMessage and on the other Apache James. An implementation of the javax.mail.internet classes is hidden somewhere in the Notes client, so that would favour MimeMessage. However I found it easier to work with the mime4j classes. Here is what I came up with:
package com.notessensei.mimeimport;

import java.io.IOException;
import java.io.InputStream;

import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.Session;

import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.parser.ContentHandler;
import org.apache.james.mime4j.parser.MimeStreamParser;


public class Mime2Doc {
   
    public void importMail(Session s, InputStream in, Document doc) throws NotesException, MimeException, IOException {
        doc.replaceItemValue("Form", "Memo");
        MimeStreamParser parser = new MimeStreamParser();
        ContentHandler h = new DocContentHandler(s, doc);
        parser.setContentHandler(h);
        parser.parse(in);
    }
}
The bulk of the work happens inside the ContentHandler. Using a Stack (that works LIFO) I can track Mime entries inside mime entries inside mime entries. Still the code is just below 100 lines.
The final piece in the puzzle is the class that helps to track the MIME Parts that are put onto the Stack and returns MIME-Type and encoding derived from the header fields. You are ready to test.

---------------------
http://feedproxy.google.com/~r/Wisselnet/~3/Go4nOK0XYws/SHWL-8TMJFU
Apr 23, 2012
190 hits



Recent Blog Posts
150


Long Term Storage and Retention
Thu, Aug 14th 2014 6:14a   Stephan H Wissel
Not just since Einstein time is relative. For a human brain anything above 3 seconds is long term. In IT this is a little more complex. Once a work artefact is completed, it runs through a legal vetting and it either goes to medium or long term storage. I'll explain the difference in a second. This logical flow manifests itself in multiple ways in concrete implementations: Journaling (both eMail and databases), archival, backups, write-once copies. Quite often all artifacts go to medium term [read] Keywords: domino ibm notes application archive database email office wiki xml
151


Time stamped encrypted archives
Wed, Aug 13th 2014 9:12a   Stephan H Wissel
Developers use Version Control, business users Document management and consultants ZIP files. From time to time I feel the need to safeguard a snapshot in time outside the machine I'm working with. Since "storage out of my control" isn't trustworthy, I encrypt data. This is the script I use: #!/bin/bash ############################################################################ # Saves the given directory (%1) in an SSL encrypted zip file (%2) within # the personalFiles folder. The name [read] Keywords: connections ibm linux network wiki
244


Designing a REST API for eMail
Sat, Aug 9th 2014 11:12a   Stephan H Wissel
Unencumbered by standards designed by committees I'm musing how a REST API would look like. A REST API consists of 3 parts: the URI (~ URL for browser access), the verb and the payload. Since I'm looking at browser only access, the structured data payload format clearly will be JSON with the prose payload delivered in MIME format. I will worry about calendar and social data later on. The verbs in REST are defined by the HTTP standard: , PUT, and DELETE. My base url would be http://localhost [read] Keywords: ibm email wiki
212


Running vert.x with the OpenNTF Domino API
Wed, Aug 6th 2014 1:11p   Stephan H Wissel
In the first part I got vert.x 3.0 running with my local Notes client. The mastered challenges there were 32 Bit Java for the Notes client and the usual adjustment for the path variables. The adoption of the OpenNTF Domino API required a few steps more: Set 2 evironment variables: DYLD_LIBRARY_PATH=/opt/ibm/notes LD_LIBRARY_PATH=/opt/ibm/notes Add the following parameter to your Java command line: -Dnotes.binary=/opt/ibm/notes -Duser.dir=/home/stw/lotus/notes/data -Djava.library.path=/opt/ib [read] Keywords: agent domino ibm lotus notes notes client applications eclipse java openntf
246


Workflow for beginners, Standards, Concepts and Confusion
Thu, Jul 24th 2014 10:12a   Stephan H Wissel
The nature of collaboration is the flow of information. So naturally I get asked about Workflows and its incarnation in IT systems a lot. Many of the question point to a fundamental confusion what Worflow is, and what it isn't. This entry will attempt to clarify concepts and terminology Wikipedia sums it up nicely: "A workflow consists of an orchestrated and repeatable pattern of business activity enabled by the systematic organization of resources into processes that transform materials, pro [read] Keywords: collaboration ibm applications email google openntf soa wiki
234


Warriors of Light
Sun, Jul 20th 2014 11:15a   Stephan H Wissel
Inspired by Paulo Coelho's manual for the Warrior of the Light: Warriors of Light We were born from the stars Descended from the heavens Armed with compassion Determined to end the suffering Subjected to the human condition Battling ignorance with wisdom Laying our lives for the liberation from illusion When you look in the mirror - remember! You are one of us. [read] Keywords:




220


Adventures with vert.x, 64Bit and the IBM Notes client
Thu, Jul 17th 2014 8:12a   Stephan H Wissel
The rising star of web servers currently is node.js, not at least due to the cambrian explosion in available packages with a clever package management system and the fact that "Any application that can be written in JavaScript, will eventually be written in JavaScript" (according to Jeff Atwood). When talking to IBM Domino or IBM Connections node.js allows for very elegant solutions using the REST APIs. However when talking to a IBM Notes client, it can't do much since an external program ne [read] Keywords: connections domino ibm lotus notes notes client application development eclipse google java javascript oracle python wiki ubuntu
229


Cycle where?
Sun, Jul 13th 2014 1:12p   Stephan H Wissel
I like to cycle, I do that often and from time to time I have fun with traffic participants. One of the interesting challenges are multi-lane crossings (note to my overseas readers: Singapore follows the British system of driving on the left, so cyclists are supposed to cycle on the left edge of the road - which makes me edgy in some situations. So for right driving countries, just flip the pictures) where the outer lane allows more than one direction. Like these: Road rules do require the [read] Keywords: google wiki
302


From XML to JSON and back
Fri, Jul 11th 2014 8:12p   Stephan H Wissel
In the beginning there was csv and the world of application neutral (almost) human readable data formats was good. Then unrest grew and the demand for more structure and contextual information grew. This gave birth to SGML (1986), adopted only by a few initiated. Only more than a decade later (1998) SGML's offspring XML took centre stage. With broad support for schemas, transformation and tooling the de facto standard for application neutral (almost) human readable data formats was established [read] Keywords: application java javascript server wiki xml xslt
235


The folly of root cause analysis
Wed, Jul 9th 2014 6:12a   Stephan H Wissel
IT support's dealing with management is a funny business. Whenever something goes wrong, support teams engage in "defensive blaming" and the elusive quest for a root cause. I've seen this quest (and blaming god and country along the way if it doesn't appear) taking priority over problem resolution and prevention. The twisted thought is: "If I'm not sure about the (single) root cause, I can't neither fix nor prevent it from happening again". Why is that a folly? It paralyses: If a pe [read] Keywords: application database google wiki




Created and Maintained by Yancy Lent - About - Blog Submission - Suggestions - Change Log - Blog Widget - Advertising - Mobile Edition