357 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
 
Latest 7 Posts
Workflow for beginners, Standards, Concepts and Confusion
Thu, Jul 24th 2014 120
Warriors of Light
Sun, Jul 20th 2014 152
Adventures with vert.x, 64Bit and the IBM Notes client
Thu, Jul 17th 2014 139
Cycle where?
Sun, Jul 13th 2014 167
From XML to JSON and back
Fri, Jul 11th 2014 237
The folly of root cause analysis
Wed, Jul 9th 2014 175
Documents vs eMails
Fri, Jul 4th 2014 322
Top 10
Domino Development - Back to Basics - Part 5: Finding data - Collections and Search
Thu, Jan 2nd 2014 985
Let's ditch IBM Notes and Domino
Thu, May 29th 2014 673
Domino Development - Back to Basics - Part 7: Map Reduce Domino Style
Wed, Feb 12th 2014 507
Download Connect 2014 presentation files
Tue, Feb 4th 2014 476
Numbers are numbers, you have to see it! - Selenium edition
Sat, Feb 15th 2014 474
What is your investment in Notes applications - revisited
Tue, Feb 25th 2014 462
MongoDB to switch to IBM storage backend
Tue, Apr 1st 2014 455
Domino Development - Back to Basics - Part 6: Better save than sorry - Security
Tue, Feb 4th 2014 446
CRM > Sales Tracking
Sun, May 5th 2013 444
You want to move to Domino? You need a plan!
Thu, Apr 17th 2014 431


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
193 hits



Recent Blog Posts
120


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
152


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:
139


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
167


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
237


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
175


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




322


Documents vs eMails
Fri, Jul 4th 2014 6:14a   Stephan H Wissel
With a public sector customer I had an interesting discussion on non-repudiation, messaging and regulatory control. We were discussing how to ensure awareness of information that has behavioural or legal consequences. While "I didn't know" is hardly a viable defence, relying on the other party to keep themselves updated is just asking for trouble. In a collaborative environment, where a regulator sees itself primarily as the facilitator of orderly conduct and only as policing the conduct as s [read] Keywords: domino database email microsoft server wiki xml
194


The taxi loyalty program isn't working and how to fix it
Mon, Jun 16th 2014 10:11a   Stephan H Wissel
Singapore is a little like New York: train and taxis are a mainstay of the daily commute. So the taxi market is highly regulated and fiercely competitive. As no surprise taxi companies try to bind customers before they loyalty switches to alternative bookings or the disruptors. So Comfort & CityCab started CabRewards. After all loyalty cards work well for their inventor. In a smart move, instead of creating a new piece of plastic, Comfort teamed up with ezLink Singapore's leading provider [read] Keywords: admin administration application mobile wiki
673


Let's ditch IBM Notes and Domino
Thu, May 29th 2014 7:11p   Stephan H Wissel
Finally you decided it is time to move on, legacy no longer means "tried and tested" but "we need to move one" to you. After all you never really liked Cher. Notes data is available via LotusScript, dotNet (through the COM bridge), in Java, Corba, C++, XML, REST, MIME, so how hard can it be? Actually not very hard, you just need to: Find sutiable replacement application platform(s) Rewrite the applications (don't dream: there is no such thing as "migrate an app") Migrate your users Migr [read] Keywords: domino ibm lei lotusscript notes richtext xpages application applications community database db2 enterprise google integration java linux mobile server wiki xml
254


Value, Features and Workflows
Mon, May 12th 2014 6:11a   Stephan H Wissel
In sales school we are taught to sell value. Initially that approach was designed to defang the threat of endless haggling over price, but it took an extra twist in the software industry. Since software companies rely on user's desire to "buy the next version" to secure revenue from maintenance and upgrade sales, a feature war was the consequence. As a result, buyers frequently request feature comparison tables, driving the proponents of "value & vision" up the wall. It also creates te [read] Keywords: ibm notes application archive email outlook server wiki




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