Giter Club home page Giter Club logo

notes-explorer's Introduction

iNotes-exporter

This project reads a Lotus Domino iNotes 8.5 webmail and exports the data as POP3(S), mbox and/or maildir.
SEO keywords: IBM Lotus Notes Domino iNotes POP3 mbox maildir export
This is a command-line application. For a web front-end, see iNotes-exporter-web. For exporting local email .nsf files, see NSF-exporter.

Requirements

  • Lotus iNotes (the Lotus Notes webmail) credentials (tested with version 8.5.3)
  • Java 6
  • Maven 3 for compiling

Configuration

Personal credentials and preferences: src/main/resources/iNotes.properties (can be overriden on command-line: -D<key>=<value>)
logging: src/main/resources/simplelogger.properties

If you need to use an HTTP/SOCKS proxy, you can also use the usual Java Networking System properties.

Compiling

(after configuration!)

mvn -Dmaven.test.skip clean assembly:single

Running

In addition to exposing a Notes INBOX as a POP3 server, iNotes exporter supports exporting either 1 mailbox or all Notes server emails, to different formats:

  • single mailbox
    • mbox: traditional UNIX mailbox format; single file contains multiple messages.
      Multiple variants exist:
      • mboxo (deprecated)
      • mboxrd
      • MMDF
    • maildir: one file contains one message
  • multiple mailboxes
    • MH (deprecated)
    • EML
    • maildir++

List available iNotes folders

java [-Dinotes.server=...] [-Dnotes.user=...] [-Dnotes.password=...] -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar listfolders

Display iNotes quota

java [-Dinotes.server=...] [-Dnotes.user=...] [-Dnotes.password=...] -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar quota

Single mailbox export (mbox / maildir)

java [-Dinotes.server=...] [-Dnotes.user=...] [-Dnotes.password=...] [-Dnotes.folder.id=($Inbox)] -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar (mboxrd|maildir) <output_file|output_dir> [start date: yyyy-MM-dd'T'HH:mm [end date: yyyy-MM-dd'T'HH:mm [--delete]]]

where

  • <output_file> will be overwritten if no start date is given. Otherwise, the newest email data is appended to it.
  • yyyy-MM-dd'T'HH:mm is the date of the oldest message to export
    • if none provided, and output_file does not exists, exports all messages
    • if none provided, and output_file exists, do an incremental export since last time this tool was run
  • yyyy-MM-dd'T'HH:mm is the date of the newest message to export
  • --delete: delete messages from the Notes server after exporting

examples:

  • java -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar maildir ~/Maildir 2012-01-20T20:00
    • will export all messages after 2012-01-20T20:00 from iNotes server's INBOX to the ~/Maildir maildir
  • java -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar mboxrd ~/archive_2012.gz 2012-01-01T00:00 2013-01-01T00:00 --delete
    • will export all 2012 messages from iNotes server's INBOX to the (compressed) ~/archive_2012.mboxrd.gz mailbox file, deleting messages from the server

If you don't know which mbox format to choose (mboxo, mboxrd, mboxcl, mboxcl2, MMDF, maildir), use mboxrd.

Specifying a .gz extension for a mailbox file name is specifically made for Dovecot which can read compressed mbox archives. Please note that any kind of export to an existing compressed mbox is not allowed, as this would corrupt the mbox file!

The (incremental) last export date is stored in the Java Preferences (~/.java/ for Linux / *BSD, ~/Library/Preferences/fr.cedrik.inotes.plist for Mac OS X, and the Registry for Windows).

If running unattended, please have a process monitor the output for all ERROR's that could occur!

All mailboxes export (maildir++)

java [-Dinotes.server=...] [-Dnotes.user=...] [-Dnotes.password=...] -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar maildirpp <output_dir>

example:

  • java -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar maildirpp ~/Maildir
    • will (incrementally) export all messages to the ~/Maildir maildir++

If you don't know which maildir format to choose (MH, EML, maildir++), use maildir++.

The (incremental) last export date is stored in the Java Preferences (~/.java/ for Linux / *BSD, ~/Library/Preferences/fr.cedrik.inotes.plist for Mac OS X, and the Registry for Windows).

If running unattended, please have a process monitor the output for all ERROR's that could occur!

POP3 / POP3S server

POP3

java [-Dpop3.port=110] [-Dpop3.shutdown=now!] [-Dinotes.server=...] [-Dnotes.folder.id=($Inbox)] -jar target/iNotes-exporter-1.8-jar-with-dependencies.jar pop3server

Use as pop3 user login: username@https://webmail.example.com

This POP3 server has a user and IP lock out mechanism if there are too many failed authentication attempts in a given period of time. It achieves this by recording all failed logins, including those for users that do not exist. To prevent a DOS by deliberating making requests with invalid users (and hence causing this cache to grow) the size of the list of users and IPs that have failed authentication is limited. (Configurable in iNotes.properties)

POP3S

POP3 communication is clear-text. For extra security, you can add an SSL/TLS transport to POP3.
You will need to generate and configure a certificate. For example:

$JAVA_HOME/bin/keytool -genkey -alias pop3s -keyalg RSA -keysize 2048 -validity 3650 -keystore /opt/iNotes-keystore -storepass b92kqmp -keypass changeit -dname "cn=<your_FQN_server_name>, o=cedrik.fr, l=Paris, s=Ile-de-France, c=FR"

which will then be configured in iNotes.properties as:

pop3s.port=995
pop3s.keyStoreName=/opt/iNotes-keystore
pop3s.keyStorePassword=b92kqmp
pop3s.keyStoreType=jks
pop3s.keyPassword=changeit

As an alternative to configuring POP3S, you can also use stunnel.

Note: to disable the POP3 connector and only keep the secure POP3S version, set pop3.port=-1.

Additional (non-standard) POP3 commands

The following POP3 commands are not RFC standard, but can help manage your iNotes account:

  • SHUTDOWN <secret>: to shutdown the POP3 server (set the secret in iNotes.properties)
  • QUOTA: gives information on quota usage
  • FOLDER: list available iNotes folders
  • FOLDER <id>: change current folder
  • LOGGER: get loggers levels
  • LOGGER <logger_id> <level>: set logger level

notes-explorer's People

Contributors

javabean avatar kalw avatar weslleyng avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.