358 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
 
Latest 7 Posts
Creating nginx configurations for Domino SSL
Sat, Sep 20th 2014 304
Tracking down slow internet on SingTel Fibre to the home
Tue, Sep 16th 2014 86
Foundation of Software Development
Fri, Sep 12th 2014 152
Flow, Rules, Complexity and Simplicity in Workflow
Wed, Sep 3rd 2014 164
Rethinking the MimeDocument data source
Mon, Sep 1st 2014 195
Bikepad SmartPhone mount review
Mon, Sep 1st 2014 114
Long Term Storage and Retention
Thu, Aug 14th 2014 168
Top 10
Domino Development - Back to Basics - Part 5: Finding data - Collections and Search
Thu, Jan 2nd 2014 895
Documents vs eMails
Fri, Jul 4th 2014 417
From XML to JSON and back
Fri, Jul 11th 2014 328
Creating nginx configurations for Domino SSL
Sat, Sep 20th 2014 304
Workflow for beginners, Standards, Concepts and Confusion
Thu, Jul 24th 2014 282
Designing a REST API for eMail
Sat, Aug 9th 2014 278
Warriors of Light
Sun, Jul 20th 2014 266
The folly of root cause analysis
Wed, Jul 9th 2014 254
Cycle where?
Sun, Jul 13th 2014 252
Running vert.x with the OpenNTF Domino API
Wed, Aug 6th 2014 243


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



Recent Blog Posts
304


Creating nginx configurations for Domino SSL
Sat, Sep 20th 2014 1:12p   Stephan H Wissel
Websites need to be secure, so the SHA-1 cipher is coming to an end. Despite best efforts, Domino is stuck with this outdated Cipher. While you can, on Windows, hide Domino behind IHS, I find nginx easier to tame. Jesse explains how to configure nginx as the Domino proxy. So all is good, expecially since he also covered High availability. But when you have a lot of sites, that's a lot of typing (and copy & paste from the Internet site documents). Mustache to the rescue! I've written abou [read] Keywords: domino ibm java server
86


Tracking down slow internet on SingTel Fibre to the home
Tue, Sep 16th 2014 8:12p   Stephan H Wissel
SingTel makes big claims about the beauty of their fibre offering. I do not experience the claimed benefits. So I'm starting to track down what is happening. Interestingly when you visit SpeedTest, it shows fantastic results. I smell rat. So I ran a test with Pocketinet in Walla Walla, WA. SpeedTest claims a 5ms ping response, but when I, immediate before or after such a test, issue a ping -c5 www.pocketinet.com I get results rather in the range of 200-230ms. Ein Schelm wer böses dab [read] Keywords: ibm google server wiki
152


Foundation of Software Development
Fri, Sep 12th 2014 6:13a   Stephan H Wissel
When you learn cooking, there are a few basic skills that need to be in place before you can get started: cutting, measuring, stiring and understanding of temperature's impact on food items. These skills are independent from what you want to cook: western, Chinese, Indian, Korean or Space Food. The same applies to software development. Interestingly we try to delegate these skills to ui designers, architects, project managers analyst or infrastructure owners. To be a good developer, you don't [read] Keywords: ibm development wiki
164


Flow, Rules, Complexity and Simplicity in Workflow
Wed, Sep 3rd 2014 6:13a   Stephan H Wissel
When I make the claim "Most workflows are simple", in return I'm hit with bewildered looks and the assertion: "No, ours are quite complex". My little provocation is quite deliberate, since it serves as an opening gambit to discuss the relation between flow, rules and lookups. All workflows begin rather simple. I'll take a travel approval workflow as a sample (resemblance of workflows of existing companies would be pure coincidence). The explanation is simple: "You request approval from [read] Keywords: google
195


Rethinking the MimeDocument data source
Mon, Sep 1st 2014 12:13p   Stephan H Wissel
Tim (we miss you) and Jesse had the idea to store beans in Mime documents, which became an OpenNTF project. I love that idea and was musing how to make it more "domino like". In its binary format, a serialized bean can't be used for showing view data, nor can one be sure that it can be transported or deserialized other than through the same class version as the creator (this is why Serialized wants to have a serialid). With a little extra work, that becomes actually quite easy: Enter JAXB. [read] Keywords: domino lotus notes xpages email java linkedin openntf oracle profile xml
114


Bikepad SmartPhone mount review
Mon, Sep 1st 2014 10:12a   Stephan H Wissel
This is my field impression of the Bikepad SmartPhone mount having used it for a few weeks on my Montague Paratrooper pro TL:TRThe Bikepad is a highly functional accessory to keep your phone on your bike fully functional. Is has quality craftsmanship and a sleek design. If I had an editor-refuses-to-give-it-back award to give (I actually paid for it), I would award it. I do cycle for longer durations and some rough spots, so I like to keep a phone in reach. Not at last to keep SWMBO updated. [read] Keywords: iphone wiki
168


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




174


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
278


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
243


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




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