A Database-based Email System



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

How To Use Gfi Mailarchiver On A Pc Or Macbook With Gfi From A Windows 7.5 (Windows 7) On A Microsoft Mail Server On A Gfi Server On An Ipod Or Gfi.Org (

Mail agents. Introduction to Internet Mail. Message format (2) Authenticating senders

Steps to setup authentication and enrolment through LDAP protocol

Getting Started Guide

Mail Avenger. David Mazières New York University

POP3 Connector for Exchange - Configuration

Configuration Network Management Card-2

SMTP Servers. Determine if an message should be sent to another machine and automatically send it to that machine using SMTP.

QMAIL & SMTP: A Secure Application for an Unsecure Protocol. Orr Dunkelman. orrd@vipe.technion.ac.il. January 27, 2004 SMTP and QMAIL Slide 1

Practical LDAP on Linux

BillMax Ticketing Installation and Usage Guide

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

Peer-to-Peer Support for Distributed Mail Transfer Mechanism. Abstract

GFI Product Guide. GFI MailArchiver Archive Assistant

Simple Mail Transfer Protocol

Configuring and Using the TMM with LDAP / Active Directory

Integrated Migration Tool

Electronic Mail

Applications and Services. DNS (Domain Name System)

Emacs SMTP Library. An Emacs package for sending mail via SMTP. Simon Josefsson, Alex Schroeder

Configuring MDaemon for Centralized Spam Blocking and Filtering

Chapter 3 Authenticating Users

Cryoserver Archive Lotus Notes Configuration

Libra Esva. Whitepaper. Glossary. How Really Works. Security Virtual Appliance. May, It's So Simple...or Is It?

Guardian Digital Secure Mail Suite Quick Start Guide

User Management Resource Administrator. Managing LDAP directory services with UMRA

GFI Product Manual. GFI MailArchiver Outlook Addon

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

How To Upgrade To Symantec Mail Security Appliance 7.5.5

Using LDAP Authentication in a PowerCenter Domain

Integrating PISTON OPENSTACK 3.0 with Microsoft Active Directory

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

Implementing MDaemon as an Security Gateway to Exchange Server

SpamPanel Level Manual Version 1 Last update: March 21, 2014 SpamPanel

security

Technical Bulletin 005 Revised 2010/12/10

The Integration of LDAP into the Messaging Infrastructure at CERN

Internet Technology 2/13/2013

SQL Server An Overview

Lesson Plans Configuring Exchange Server 2007

Configuring Security for SMTP Traffic

LDAP and Active Directory Guide

Objective This howto demonstrates and explains the different mechanisms for fending off unwanted spam .

SpamPanel Reseller Level Manual 1 Last update: September 26, 2014 SpamPanel

Articles Fighting SPAM in Lotus Domino

CS 164 Winter 2009 Term Project Writing an SMTP server and an SMTP client (Receiver-SMTP and Sender-SMTP) Due & Demo Date (Friday, March 13th)

Introduction to Linux (Authentication Systems, User Accounts, LDAP and NIS) Süha TUNA Res. Assist.

MOC 5047B: Intro to Installing & Managing Microsoft Exchange Server 2007 SP1

Issue 2EN. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Deploying ModusGate with Exchange Server. (Version 4.0+)

Listeners. Formats. Free Form. Formatted

Internet infrastructure. Prof. dr. ir. André Mariën

Integration Client Guide

CISNTWK-492e. Microsoft Exchange Server 2003 Administration. Chapter Five Managing Addresses

Using RADIUS Agent for Transparent User Identification

, SNMP, Securing the Web: SSL

LISTSERV LDAP Documentation

GFI Product Guide. Archive Assistant

Networking Applications

Cloud. Hosted Exchange Administration Manual

What is a Mail Gateway?... 1 Mail Gateway Setup Peering... 3 Domain Forwarding... 4 External Address Verification... 4

Table of Contents Chapter 1 INTRODUCTION TO MAILENABLE SOFTWARE... 3 MailEnable Webmail Introduction MailEnable Requirements and Getting Started

Chakchai So-In, Ph.D.

Technology Primer. OPS Manager, Release 7.4. Integrating Your Directory Server with our Directory Service Solution

MailStore Server 5.0 Documentation

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

Outlook Live Basics. for Students

Technical Note. FORTIMAIL Configuration For Enterprise Deployment. Rev 2.1

Using Outlook Web App

Geodatabase Programming with SQL

Administrator Quick Start Guide

. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Your Question. Article: Question: How do I Configure LDAP with Net Report?

Installing GFI MailArchiver

Appendix. Web Command Error Codes. Web Command Error Codes

Internet Security [1] VU Engin Kirda

Protected Trust Directory Sync Guide

Configure a Mail Server

How To Block Ndr Spam

SonicOS Enhanced 3.2 LDAP Integration with Microsoft Active Directory and Novell edirectory Support

HYPER MEDIA MESSAGING

Change is Coming: z/os Mail Overview and Futures

Remote login (Telnet):

Cannot send Autosupport , error message: Unknown User

DB2 - DATABASE SECURITY

RFC 821 SIMPLE MAIL TRANSFER PROTOCOL. Jonathan B. Postel. August 1982

PageScope Router. Version 1.5. Configuration Guide

How To Use The Policy Patrol Archiver Server

Introduction Installing and Configuring the LDAP Server Configuring Yealink IP Phones Using LDAP Phonebook...

New SMTP client for sending Internet mail

Transcription:

Rukma Prabhu Verlekar Neela Sawant Meghana Kshirsagar Computer Science and Engineering IIT Bombay Oct 31, 2004

A Bird s Eye View of our System Goal To build a database-based email-system. Motivation: Short-comings in existing email-systems Most email-systems have a File-system at the back-end. No authentication system while sending mail. No support for searching attachments. Our system aims at improving on these. Database system at back-end. Authentication of users even when accepting send requests. Support for user-defined labels,searching attachments,search on labels.

A Bird s Eye View of our System Goal To build a database-based email-system. Motivation: Short-comings in existing email-systems Most email-systems have a File-system at the back-end. No authentication system while sending mail. No support for searching attachments. Our system aims at improving on these. Database system at back-end. Authentication of users even when accepting send requests. Support for user-defined labels,searching attachments,search on labels.

A Bird s Eye View of our System Goal To build a database-based email-system. Motivation: Short-comings in existing email-systems Most email-systems have a File-system at the back-end. No authentication system while sending mail. No support for searching attachments. Our system aims at improving on these. Database system at back-end. Authentication of users even when accepting send requests. Support for user-defined labels,searching attachments,search on labels.

A Bird s Eye View of our System Goal To build a database-based email-system. Motivation: Short-comings in existing email-systems Most email-systems have a File-system at the back-end. No authentication system while sending mail. No support for searching attachments. Our system aims at improving on these. Database system at back-end. Authentication of users even when accepting send requests. Support for user-defined labels,searching attachments,search on labels.

A Bird s Eye View of our System Goal To build a database-based email-system. Motivation: Short-comings in existing email-systems Most email-systems have a File-system at the back-end. No authentication system while sending mail. No support for searching attachments. Our system aims at improving on these. Database system at back-end. Authentication of users even when accepting send requests. Support for user-defined labels,searching attachments,search on labels.

A Bird s Eye View of our System Goal To build a database-based email-system. Motivation: Short-comings in existing email-systems Most email-systems have a File-system at the back-end. No authentication system while sending mail. No support for searching attachments. Our system aims at improving on these. Database system at back-end. Authentication of users even when accepting send requests. Support for user-defined labels,searching attachments,search on labels.

Our System A Bird s Eye View of our System Components of our System: An server. An directory server for authentication of users. A Database at the back end.

Our System A Bird s Eye View of our System Components of our System: An server. An directory server for authentication of users. A Database at the back end.

Our System A Bird s Eye View of our System Components of our System: An server. An directory server for authentication of users. A Database at the back end.

Bird s Eye View of our System A Bird s Eye View of our System IMAP Server Mail Client Data Base Server Server

- An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing What is? The Simple Mail Transfer Protocol () is Internet s standard host-to-host mail transport protocol. It is a server-server protocol. commands: EHLO MAIL FRM: RCPT TO: DATA VRFY EXPN

- An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing What is? The Simple Mail Transfer Protocol () is Internet s standard host-to-host mail transport protocol. It is a server-server protocol. commands: EHLO MAIL FRM: RCPT TO: DATA VRFY EXPN

- An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing Control Flow Diagram of the Mailing process

Processes - An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing Check If non-mail request.(i.e if VRFY or EXPN) Call Non-mail-Request(). Else If Mail-request Call Mail-Request(). Else Error. Non-mail-Request() If ( command = VRFY or command = EXPN ) Contact server to retrieve the requested information. (i.e information about user or mailing-list)

Processes Contd... - An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing Mail-Request() Check the mail-format. If not proper bounce it. If ( From belongs to my domain) it should be a send request from a local client. Call Authenticate(). Else Queue it. Authenticate() If valid user, prompt for password. Contact server for verifying password. If authentication succeeds, Queue the request. Else Error.

Processes...contd - An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing Address Resolver If ( To belongs to my domain) it is an incoming mail for my client. Call LocalMailProcessing(). Else If ( From my domain) it is a send request to external destination. Call SendMail(). Else it is a relay request. Call CheckIfAuthorized(). CheckIfAuthorized() Check if the requested relay-destination is in the list of authorized-relay-destinations. If Yes Call SendMail(). Else Reject it.

Processes Contd... - An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing SendMail() Do DNSLookup Select the DNS-MX record with highest priority for the To domain. Send the mail. Deferred Queue If the Mail couldnt be sent successfully it is put into the deferred queue and the daemon tries to send it later.

- An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing Control Flow Diagram for Local Mail processing

Local Processing - An Control Flow Diagram of the Mailing process Processes Control Flow Diagram for Local Mail processing Verifier Contacts the server,verifies if recipient exists on this domain. The recipient could either be one/more users (or) a mailing-list. Parse and Fragment Mail Parse and fragment the mail to extract the header fields, body, attachments. All attachments are also seperated. Apply Filters Contact the FILTERS table and apply the filters defined by each recipient. A filter is applied by executing the SIEVE code corresponding to it. The filter determines which of the labels defined by the user to apply to the mail.

Why a Database? Schema Stored Procedures Advantages A single copy of mails received for mailing-lists is stored. An optimized design of the database makes searching,faster retrieval of mails on different search keys such as subject, sender, header, body and so on. Efficient storage by stripping each mail into its components and storing them in a backend database. Easy maintenance of information and faster search through standard database techniques.

Why a Database? Schema Stored Procedures Advantages A single copy of mails received for mailing-lists is stored. An optimized design of the database makes searching,faster retrieval of mails on different search keys such as subject, sender, header, body and so on. Efficient storage by stripping each mail into its components and storing them in a backend database. Easy maintenance of information and faster search through standard database techniques.

Why a Database? Schema Stored Procedures Advantages A single copy of mails received for mailing-lists is stored. An optimized design of the database makes searching,faster retrieval of mails on different search keys such as subject, sender, header, body and so on. Efficient storage by stripping each mail into its components and storing them in a backend database. Easy maintenance of information and faster search through standard database techniques.

Why a Database? Schema Stored Procedures Advantages A single copy of mails received for mailing-lists is stored. An optimized design of the database makes searching,faster retrieval of mails on different search keys such as subject, sender, header, body and so on. Efficient storage by stripping each mail into its components and storing them in a backend database. Easy maintenance of information and faster search through standard database techniques.

Database Schema - Tables Schema Stored Procedures MAIL MESSAGE Table Metadata FIELD DATA TYPE NULL DESCRIPTION MESSAGE ID NUMBER NOT NULL Primary key. Message-id associated with a mail. POINTER TO BODY INTEGER NOT NULL Points to location where body is stored in file-system. SUBJECT VARCHAR(15) NULL Subject field of mail. DATE DATE NOT NULL Date when mail received. COUNT INTEGER NOT NULL Number of mailboxes sharing the mail.(should be atleast one) ATTACHMENT FLAG BOOLEAN NULL Flag to indicate if this mail has an attachment too. SIZE INTEGER NOT NULL Total size of mail.

More Tables Schema Stored Procedures FROM Table Metadata FIELD DATA TYPE NULL DESCRIPTION MESSAGE ID NUMBER NOT NULL Foreign key of table MAIL MESSAGE. FROM VARCHAR(15) NOT NULL Value associated with above field. TO Table Metadata FIELD DATA TYPE NULL DESCRIPTION MESSAGE ID NUMBER NOT NULL Foreign key of table MAIL MESSAGE. TO VARCHAR(15) NOT NULL Value associated with above field. CC Table Metadata FIELD DATA TYPE NULL DESCRIPTION MESSAGE ID NUMBER NOT NULL Foreign key of table MAIL MESSAGE. CC VARCHAR(15) NOT NULL Value associated with above field.

Tables Contd... Schema Stored Procedures USER Table Metadata FIELD DATA TYPE NULL DESCRIPTION MAIL BOX ID INTEGER NOT NULL Unique id of each user mailbox. USER ID INTEGER NOT NULL Userid of user. MESSAGE LABEL Table Metadata FIELD DATA TYPE NULL DESCRIPTION MAIL BOX ID INTEGER NOT NULL Mail-box-id of user. Foreign key to user table. MESSAGE ID INTEGER NOT NULL Message-id of mail. FK to MAIL MESSAGE TABLE. LABEL ID INTEGER NOT NULL FK to LABEL TABLE. Will be different for each user and each mail. FLAG BOOLEAN NULL Deleted, Draft, Seen/unseen,Flagged, Recent, Unsent, Labelled, Answered.

Tables Contd... Schema Stored Procedures SEQUENCES Table Metadata FIELD DATA TYPE NULL DESCRIPTION SEQUENCE NAME VARCHAR(5) (NOT NULL) Name of the Sequence. Primary key. CURRENT VALUE INTEGER NOT NULL Current value of the sequence. ATTACHMENTS Table Metadata FIELD DATA TYPE NULL DESCRIPTION ATTACHMENT ID VARCHAR(15) NOT NULL Identifier associated with attachment. (attribute#1 of composite key) MESSAGE ID NUMBER NOT NULL Message-id of the mail. (attribute#2 of composite key) POINTER INTEGER NULL Points to Attachment in the file system. SIZE INTEGER NULL Size of attachment. NAME VARCHAR(15) NULL Name of attachment.

Tables Contd... Schema Stored Procedures USER LABEL Table Metadata FIELD DATA TYPE NULL DESCRIPTION MAIL BOX ID INTEGER NOT NULL Mail-box-id of user. Foreign Key to USER TABLE LABEL ID INTEGER NOT NULL Identifier associated with this label. LABEL VARCHAR(15) NOT NULL Label name. FILTER Table Metadata FIELD DATA TYPE NULL DESCRIPTION MAIL BOX ID INTEGER NOT NULL Mail-box-id of user. Foreign Key to USER TABLE. FILTER ID INTEGER NOT NULL Id associated with a particular filter. Primary key. SIEVE CODEPTR VARCHAR(15) NOT NULL Pointer to the sieve-code.

Stored Procedures Schema Stored Procedures Input Headers, Pointer to Body, Pointer(s) to Attachments, Names/Sizes of attachments, Count Headers: *From, *To, *CC, Subject, Message-ID, Date ( * indicates that multiple values are possible) Pointer to Body: Points to location of body on the file-system. Body stored on file-system includes headers. Pointer(s) to Attachments: Points to location of attachments on the file-system. Count: Number of values in (To + CC + From) fields. Indicates how many users have received the same mail.

Tasks Performed Schema Stored Procedures Generate IDs from sequences for BODY-ID, ATTACHMENT-ID (if there are attachments) Insertions: Row: (Message-ID, From) Table: FROM Row: (Message-ID, To) Table: TO Row: (Message-ID, CC) Table: CC Row: (Attachment-ID, Message-ID, Pointer-to-Attachment, Size, Name) Table: ATTACHMENTS table. Row: (Message-ID, POINTER to BODY, Subject, Date, Count, Attachment-flag, Size) Table: MAIL MESSAGE

- An An Advantages of Directory Structure and Entries or Light-weight Directory Access Protocol is a TCP-IP based protocol for accessing a directory service. It has a client-server model. Used to store descriptive, attribute-based information. The information is arranged in a hierarchical structure. The data is optimised for reading. The slapd (Stand Alone daemon) daemon. Has two parts: A Front-end that handles protocol communication with clients. A Backend that handles database operations. Backends supported: LDBM, Shell, PASSWD.

Advantages of over Databases An Advantages of Directory Structure and Entries Why for Authentication? directories are limited but specialized databases. Compared to databases, directories are. Optimized for queries Flexible Easier to scale Simpler and cheaper to maintain.

Advantages of over Databases An Advantages of Directory Structure and Entries Why for Authentication? directories are limited but specialized databases. Compared to databases, directories are. Optimized for queries Flexible Easier to scale Simpler and cheaper to maintain.

Advantages of over Databases An Advantages of Directory Structure and Entries Why for Authentication? directories are limited but specialized databases. Compared to databases, directories are. Optimized for queries Flexible Easier to scale Simpler and cheaper to maintain.

Advantages of over Databases An Advantages of Directory Structure and Entries Why for Authentication? directories are limited but specialized databases. Compared to databases, directories are. Optimized for queries Flexible Easier to scale Simpler and cheaper to maintain.

Advantages of over Databases An Advantages of Directory Structure and Entries Why for Authentication? directories are limited but specialized databases. Compared to databases, directories are. Optimized for queries Flexible Easier to scale Simpler and cheaper to maintain.

Advantages of over Databases An Advantages of Directory Structure and Entries Why for Authentication? directories are limited but specialized databases. Compared to databases, directories are. Optimized for queries Flexible Easier to scale Simpler and cheaper to maintain.

Directory Structure An Advantages of Directory Structure and Entries

An Advantages of Directory Structure and Entries Definition of entries Defining the user entry Distinguished Name: uid= userid,ou=users,ou=cse,dc=iitb,dc=ac,dc=in objectclass: top account inetorgperson organizationalperson attributes: uid mail cn givenname postaladdress phone mailforwardingaddress forwardstatus (TRUE or FALSE) deliverymode Example: uid=neela,ou=users,ou=cse,dc=iitb,dc=ac,dc=in

Definition of entries An Advantages of Directory Structure and Entries Definition of the mailing-list entry: Distinguished Name: cn= ListName,ou=MailingLists,dc=iitb,dc=ac,dc=in (for mailing lists) objectclass: top groupofuniquenames attributes: creationdate modifieddate Distinguished Name: uid=userid,cn= ListName,ou=MailingLists,dc=iitb,dc=ac,dc=in objectclass: top person organizationalperson Example: cn=mtech1,ou=mailinglists,dc=iitb,dc=ac,dc=in

Example: Sending Mail An Advantages of Directory Structure and Entries

Example: Mail Relay An Advantages of Directory Structure and Entries

Advantages of our system An Advantages of Directory Structure and Entries Advantages: Faster retrieval of data. Savings in storage. Faster search. Only authorized users allowed to send mail. Mailing-list support.

Advantages of our system An Advantages of Directory Structure and Entries Advantages: Faster retrieval of data. Savings in storage. Faster search. Only authorized users allowed to send mail. Mailing-list support.

Advantages of our system An Advantages of Directory Structure and Entries Advantages: Faster retrieval of data. Savings in storage. Faster search. Only authorized users allowed to send mail. Mailing-list support.

Advantages of our system An Advantages of Directory Structure and Entries Advantages: Faster retrieval of data. Savings in storage. Faster search. Only authorized users allowed to send mail. Mailing-list support.

Advantages of our system An Advantages of Directory Structure and Entries Advantages: Faster retrieval of data. Savings in storage. Faster search. Only authorized users allowed to send mail. Mailing-list support.

References An Advantages of Directory Structure and Entries http://www.zvon.org/tmrfc/output http://quark.humbug.org.au http://www.rscott.org/dns/mx.html http://www.umich.edu/ dirsvcs

An Advantages of Directory Structure and Entries Graph: Database based Email sytem Vs File system Based Email system

The End An Advantages of Directory Structure and Entries THANK YOU