Apache James: more than emails in the cloud. Ioan Eugen Stan Berlin Buzzwords 2012



Similar documents
Renewal of the Services

How to setup your iphone client

The basic groups of components are described below. Fig X- 1 shows the relationship between components on a network.

Mass ing Techniques

. MIME is the protocol that was devised to allow non-ascii encoded content in an and attached files to an .

Android: Configure IMAP/POP/SMTP

Mail system components. Electronic Mail MRA MUA MSA MAA. David Byers

Fast, flexible & efficient delivery software

. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Ficha técnica de curso Código: IFCAD241

Sales Dynamite / Mobile Prospector Jack

DOVECOT Overview. Timo Sirainen Chief Architect Co-Founder

Timo Sirainen Dovecot Oy h2p://

Hosted CanIt. Roaring Penguin Software Inc. 26 April 2011

How to set up a multifunction device or application to send using Office 365

Amazon Simple Service. Developer Guide API Version

Mail NIKHEF

Search and Real-Time Analytics on Big Data

Amazon Simple Service. Developer Guide API Version

Leveraging the Power of SOLR with SPARK. Johannes Weigend QAware GmbH Germany pache Big Data Europe September 2015

Exim4U. Server Solution For Unix And Linux Systems

Various Load Testing Tools

Mail Server Administration

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

User guide Business Internet features

Management CSCU9B2 CSCU9B2 1

Talk Internet User Guides Controlgate Administrative User Guide

CURRENT STATE OF ICINGA

DomainKeys Identified Mail DKIM authenticates senders, message content

Release Notes for Patch Release #2614

HP OO 10.X - SiteScope Monitoring Templates

IOS 8: Configure IMAP/POP/SMTP

OpenSRS Service DNS Configuration Guide

Linux Network Administration

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

EMB. Basics. Goals of this lab: Prerequisites: LXB, NET, DNS

James: The Java Apache Mail Enterprise Server

Frequently Asked Questions for New Electric Mail Administrators 1 Domain Setup/Administration

How to make the s you Send from Outlook 2010 appear to Originate from different Addresses

XGENPLUS SECURITY FEATURES...

Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Operations and Monitoring with Spring

Filtering Mail with Milter. David F. Skoll Roaring Penguin Software Inc.

Setting up and controlling

Schema Design Patterns for a Peta-Scale World. Aaron Kimball Chief Architect, WibiData

suitability for groupware, and performance on powerful hardware. Axigen Mail Server

Inbox Monitor User Guide

5054A: Designing a High Availability Messaging Solution Using Microsoft Exchange Server 2007

Mail 8.2 for Apple OSX: Configure IMAP/POP/SMTP

Thexyz Premium Webmail

A Modular Architecture Using Open Source Components

Our Microsoft Exchange is Zarafa

SMTPSWITCH MAILER V6 FEATURES

SMTP Settings. Magento Extension User Guide. Official extension page: SMTP Settings. User Guide: SMTP Settings

The Direct Project Reference Implementation Architecture

Steps for: POP (Post Office Protocol) and IMAP (Internet Message Access Protocol) setup on MAC Platforms

Before starting to use the new system you will need to know the password to your e-wire account.

CS43: Computer Networks . Kevin Webb Swarthmore College September 24, 2015

Table of Contents. Electronic mail. History of (2) History of (1) history. Basic concepts. Aka (or according to Knuth)

1 Thunderbird v3 and IMAP/SMTP Configuration

Social Networks and the Richness of Data

HOW WILL I KNOW THAT I SHOULD USE THE IAS CONTINUITY SERVICE?

Large Scale Text Analysis Using the Map/Reduce

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

EAsE and Integrated Archive Platform (IAP)

Quick Start Guide Managing Your Domain

NextRow - AEM Training Program Course Catalog

Parallels Plesk Automation

The Leading Security Suites

Hadoop-based Open Source ediscovery: FreeEed. (Easy as popcorn)

Marketing 201. How a SPAM Filter Works. Craig Stouffer Pinpointe On-Demand cstouffer@pinpointe.com (408) x125

Page 1. Lecture 1: Introduction to. Introduction to Computer Networks Security. Input file DES DES DES DES. Output file

Gmail Or other POP3

1 Introduction: Network Applications

Customer Control Panel Manual

Configuring MDaemon for Centralized Spam Blocking and Filtering

English Translation of SecurityGateway for Exchange/SMTP Servers

Access Webmail, Collaboration Tools, and Sync Mobile Devices from Anywhere

REST-based Offline System

MailEnable Scalability White Paper Version 1.2

Information Retrieval Elasticsearch

Sending an Encrypted/Unencrypted Message. Let's Begin: Log In and Set Up Security Questions. Create Additional ProMailSource Accounts:

Microsoft Exchange Server 2007, Upgrade from Exchange 2000/2003 ( /5049/5050) Course KC Days OVERVIEW COURSE OBJECTIVES AUDIENCE

Mail Avenger. David Mazières New York University

G-Lock EasyMail7. Startup Guide. Client-Server Marketing Solution for Windows. To learn more about G-Lock EasyMail7, visit

SESA Securing with Cisco Security Appliance Parts 1 and 2

Collax Mail Server. Howto. This howto describes the setup of a Collax server as mail server.

Transcription:

Apache James: more than emails in the cloud Ioan Eugen Stan Berlin Buzzwords 2012

About myself Technology and Free Software Enthousiaste Apache James Committer Debian contributor and fan Fresh CTO for Axemblr - a company focused on tools for the cloud former Fire Fighter Officer

Project overview and info Apache James Project - provide a set of (Java) libraries related to e-mail communication that build into an advanced enterprise mail server. Use Java (or JVM language) and Mail => try Apache James components

Apache James Project Apache James Hupa - rich webmail client Apache James Mailets - mail processing components Apache James Mailbox - flexible mailbox storage Apache James Protocols - lightweight framework for implementing mail protocols (IMAP4, POP3, SMTP, etc.) Apache James Mime4j - library for parsing MIME documents (including email) Apache James jspf - implements SPF (Sender policy framework) Apache James jsieve - implements Sieve mail filtering language Apache James jdkim - implements DKIM Apache James Server - the "One (component) to rule them all" Other: MPT, Postage

Apache James Mailets Mailet = email processing agent Mailet = matcher + mailet Mailets are: flexible and powerful alternative to Procmail James Server = Mailet container most of email processing is done in Mailets you can access the envelope

Apache James Mailets There are several groups of Mailets: Mailet Base - useful for developing Standard Mailets Crypto Mailet jsieve Mailets You can chain mailets to form complex logic.

Apache James Mailets Samle Camel DSL for mailet processing: You define 'processors' Test for condition and dispatch the mail to the right processor: <!-- If infected go to virus processor --> <mailet match="hasmailattributewithvalue=org. apache.james.infected, true" class="toprocessor"> <processor>virus</processor> </mailet> (see mailetcontainer-template.conf file)

Apache James Hupa A rich webmail app written in GWT uses IMAP to access email access any IMAP account with Hupa (James, GMail, Yahoo) Hupa Evolution - GSoC 2012 project to improve Hupa functional email client lacks some common features (address book) Live Demo http://james.zones.apache.org/

Apache James Hupa More screenshots at: http://james.apache.org/hupa/screenshots.html

Apache James jsieve implements Sieve mail filtering language (RFC 3028), plus extensions Sieve = limited programming language to filter emails used in Sever to safely execute user scripts provides: jsieve library to use in your JVM platform code jsieve Mailet - enables server side filtering jsieve utilities - useful, related stuff

Apache James jspf A Java SPF implementation (RFC4408) SPF (Sender Policy Framework) is designed to detect email spoofing (spam from yourself) used by Server component ready for your code!

Apache James jdkim Used to fight SPAM and phishing java DKIM (Domain Keys Identified Mail) library - thank you Captain Obvious provides verification and signing for email messages in your app provides Mailets for use in James Server pluggable - you can tweel almost every behaviour

Apache James Mime4j java parsing library for email message streams supports rfc822 and MIME format similar to java-mail but much MORE tolerant with illegally formatted messages more lightweight than java-mail two parsing API's for your convenience: event driven using MimeStreamParser (SAX style) iterative using MimeTokenStream

Apache James Protocols lightweight, generic framework for developing mail protocols not bound to any socket implementation has a fast Netty implementation implementation for SMTP with hooks for user extension code POP3 IMAP4 LMTP easy to implement your own line based protocol

Apache James Mailbox Implements a Email Storage Used by James Server to store email Can be used by other applications to implement Mailbox Pattern 1 API, 4 implementations: JPA, for database storage (MySQL, Postgres, Apache Derby - default) Maildir - *NIX systems only JCR - Java Content Repository (Apache Jackrabbit) Apache HBase backend Integration with Lucene (IMAP SEARCH)

Mailbox HBase details HBase client - supply an hbase-settings.xml config and you are ready to go Simple schema: JAMES_MAILBOXES JAMES_MESSAGES JAMES_SUBSCRIPTIONS GSoC 2012 project: Distributed mailbox indexing (Lucene HBase integration) to provide search for messages stored in HBase mailbox

Mailbox HBase schema

Apache James Server The Apache James Project's "Flag Ship" Uses all other James artifacts and more Spring based Available in binary forms: WAR ZIP standalone app Debian *fat* package (in progress) works out of the box with Apache Derby as mailbox and user/domain store unpack, basic config, start sending email (5-10 min set-up)

James 3 architecture

How to scale James Scale storage: JPA mailbox with sharding?!? JCR mailbox with clustering?!? use HBase mailbox implementation Scale processing: use GreyMatter - Akka~Mailet integration use multiple James instances* combine the above approaches * requires distributed mailbox locking and UID generation - Zookeeper based implementation progress

Anatomy of Email - RFC 5322 From: John Doe <jdoe@machine.example> To: Mary Smith <mary@example.net> Subject: Saying Hello Date: Fri, 21 Nov 1997 09:55:06-0600 Message-ID: <1234@local.machine.example> This is a message just to say hello. So, "Hello".

Find 5 similarities

Find 5 similarities take 2

Final notes Respect the firefighters!

Final slide Thank you! Questions/Comments? Applause!? Contact: ieugen@apache.org