SlideShare a Scribd company logo
1 of 18
Download to read offline
1/
On premise
email inbound service
with Apache James
2/
About me
Backend software engineer @linagoraVN
- Java / Scala developer
- Solution architect
- Apache James Chairman
- email expert
- Apache Cassandra fan-boy
- Loves distributed computing topics.
3/
About Linagora Vietnam
Office in Vietnam since 2015
Offers alternative for collaborative suites.
Why ? => Digital sovereignty through OpenSource
TMail
4/
About Apache James
Apache project since 2007
→ Implements multiple Email standards: SMTP, IMAP, JMAP, etc…
→ Scaling infrastucture available
(Cassandra, S3, OpenSearch, RabbitMQ)
→ Flexibility: Extensions, and toolbox to assemble your own email server.
5/
What’s in a mail?
Date: Tue, 03 Jan 2017 16:05:01 +0100
From: sender <sender@james.org>
MIME-Version: 1.0
To: David DOLCIMASCOLO <david.ddo@linagora.com>
Subject: Re: [Internet] Rendez-vous
References: <9b6a4271-69fb-217a-5c14-c68c68375d96@linagora.com>
In-Reply-To: <d5c6f1d6-96e7-8172-9fe6-41fa6c9bd6ec@linagora.com>
X-Gie-Attachments: none
Cc:
Content-type: multipart/mixed; boundary="----------=_1483455916-7086-3"
This is a multi-part message in MIME format...
------------=_1483455916-7086-3
Content-Type: multipart/alternative; boundary="------------060506070600060108040700"
This is a multi-part message in MIME format.
--------------060506070600060108040700
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
/blabla/
*bloblo*
--------------060506070600060108040700
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<i>blabla</i>
<b>bloblo</b>
--------------060506070600060108040700--
------------=_1483455916-7086-3
Content-ID: <14672787885774e5c4d4cee471352039@linagora.com>
Content-Type: text/plain; charset="iso-8859-1"; name="avertissement.txt"
Content-Disposition: inline; filename="avertissement.txt"
Content-Transfer-Encoding: binary
inline attachment
------------=_1483455916-7086-3--
Mime stucture:
- header / body
- single body VS multipart
- Each part have its header
- Nested multiparts
Parsing this can QUICKLY
become a mess!
CTRL + U in
thunderbird
6/
Reminder about email protocols
MTA MX
DNS
MX MDA
proxy
IMAP
SMTPS
Bob’s MUA
Webmail
Alice MUA
Thunderbird
Open standards (RFCs)
No vendor lock in.
SMTP
(opportunistic
STARTTLS upgrade)
SMTPS
(authenticated)
SMTPS
MX record
lookup
Vocabulary:
- MTA: Mail Transfer Agent
- MX: Mail eXchange
- MDA: Mail Delivery Agent
- MUA: Mail User Agent
- SMTP: Simple Mail Transport Protocol
- IMAP: Internet Message Access Protocol
7/
JMAP: The new kid in town
MX MDA
JMAP
SMTPS
Bob’s MUA
Webmail
Open standards (RFCs)
No vendor lock in
https://jmap.io/
SMTP
(opportunistic
STARTTLS upgrade)
→ Newly standardized
→ HTTP + JSON
→ Native Push and synchronization
→ Unifies IMAP and SMTP
→ Easy and efficient to use!
8/
Inbound VS outbound
My App
Bob
(user)
My app sends email:
Outbound
My app receives email:
Inbound
9/
Inbound: example of feature
The SMTP server added the
event in my calendar!
10/
Inbound: Other examples
List-Unsubscribe: <mailto:announce-unsubscribe@apache.org>
SMTP
server
helpdesk@company.com
11/
James Architecture
SMTP stack Mail
Queue
IMAP stack
Mail Processing
Mailbox
Remote
Delivery
12/
James Architecture (sorry)
SMTP stack Mail
Queue
Mail Processing
Use of eg James JPA-SMTP devoted to custom mail processing.
My
Stuff
13/
James Mail Processing
Vocabulary:
- Mailet: Action
- Matcher:Condition
- Processor: list of mailet and
matcher
The way mailetcontainer is
arranged is fully defined in
mailetcontainer.xml
Many pre-existing mailet / matchers.
14/
Custom mailet / matchers
- Loaded from external JAR
- Can use on James components
- Extensions can also inject their
own components.
15/
Security
- Sender address spoofing!
- Reverse DNS lookups
- SPF checks
- DKIM checks
All those are implemented in
Apache James
16/
James: Other places where behavior can be overriden
Feedback to an anti-spam
Transfer user attachments to third party apps
REST API, arbitrary operations.
EG email expiracy...
Checks
before the
mail queue
17/
James: A word of observability
- Orchestrable: Helm charts available
- Structured logs with applicative context
(JSON)
- Metrics (Prometheus)
www.linagora.com
Facebook : LINAGORA - Twitter : @linagora
Tour Franklin 31ème étage
100 Terrasse Boieldieu
92042 PARIS LA DEFENSE FRANCE
Tél. : +33 (0)1 46 96 63 63 - Fax : +33 (0)1 46 96 63 64
Thank you for your attention
CONTACT
Benoit TELLIER
Ingénieur Logiciel
btellier@linagora.com
+33 (0)6 77 26 04 58
Mobile, Signal, Whatsapp

More Related Content

What's hot

Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsiRoom 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsiVietnam Open Infrastructure User Group
 
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...Vietnam Open Infrastructure User Group
 
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...Vietnam Open Infrastructure User Group
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Vietnam Open Infrastructure User Group
 
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...Vietnam Open Infrastructure User Group
 
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...Vietnam Open Infrastructure User Group
 
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...Vietnam Open Infrastructure User Group
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...LibbySchulze
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes VMware Tanzu
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architectureIgor Sfiligoi
 
Kubernetes dealing with storage and persistence
Kubernetes  dealing with storage and persistenceKubernetes  dealing with storage and persistence
Kubernetes dealing with storage and persistenceJanakiram MSV
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdKohei Tokunaga
 
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...Vietnam Open Infrastructure User Group
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesThe {code} Team
 
CI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường Chiến
CI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường ChiếnCI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường Chiến
CI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường ChiếnVietnam Open Infrastructure User Group
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatAmazon Web Services
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusGrafana Labs
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 

What's hot (20)

Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsiRoom 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
 
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
 
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
 
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
 
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
 
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 
Kubernetes dealing with storage and persistence
Kubernetes  dealing with storage and persistenceKubernetes  dealing with storage and persistence
Kubernetes dealing with storage and persistence
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
 
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in Kubernetes
 
CI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường Chiến
CI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường ChiếnCI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường Chiến
CI/CD trên Cloud OpenStack tại Viettel Networks | Hà Minh Công, Phạm Tường Chiến
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red Hat
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Observability
ObservabilityObservability
Observability
 

Similar to On-premise email service with Apache James

Apache james more than emails in the cloud
Apache james  more than emails in the cloudApache james  more than emails in the cloud
Apache james more than emails in the cloudIoan Eugen Stan
 
E-Mail - Technical Overview
E-Mail - Technical OverviewE-Mail - Technical Overview
E-Mail - Technical OverviewVenkatesh Iyer
 
How to simplify Email oriented workflow with - Visendo SMTP Extender
How to simplify Email oriented workflow with - Visendo SMTP Extender How to simplify Email oriented workflow with - Visendo SMTP Extender
How to simplify Email oriented workflow with - Visendo SMTP Extender Johannes Cosmin dumitru
 
CFIMAP & CFPOP
CFIMAP & CFPOPCFIMAP & CFPOP
CFIMAP & CFPOPisummation
 
XMPP Intro 1101 - 2008
XMPP Intro 1101 - 2008XMPP Intro 1101 - 2008
XMPP Intro 1101 - 2008Steffen Larsen
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Send email attachment using smtp in mule esb
Send email attachment using smtp in mule esbSend email attachment using smtp in mule esb
Send email attachment using smtp in mule esbSreekanth Kondapalli
 
Digital Forensics Research & Examination
Digital Forensics Research & ExaminationDigital Forensics Research & Examination
Digital Forensics Research & ExaminationforensicEmailAnalysis
 
Email - Electronic Mail
Email - Electronic MailEmail - Electronic Mail
Email - Electronic MailPeter R. Egli
 
SMTP - SIMPLE MAIL TRANSFER PROTOCOL
SMTP - SIMPLE MAIL TRANSFER PROTOCOLSMTP - SIMPLE MAIL TRANSFER PROTOCOL
SMTP - SIMPLE MAIL TRANSFER PROTOCOLVidhu Arora
 
Mail server using Linux(Ubuntu)
Mail server using Linux(Ubuntu)Mail server using Linux(Ubuntu)
Mail server using Linux(Ubuntu)Navjot Navi
 

Similar to On-premise email service with Apache James (20)

Apache james more than emails in the cloud
Apache james  more than emails in the cloudApache james  more than emails in the cloud
Apache james more than emails in the cloud
 
E-Mail - Technical Overview
E-Mail - Technical OverviewE-Mail - Technical Overview
E-Mail - Technical Overview
 
Mail server
Mail serverMail server
Mail server
 
Mail server
Mail serverMail server
Mail server
 
How to simplify Email oriented workflow with - Visendo SMTP Extender
How to simplify Email oriented workflow with - Visendo SMTP Extender How to simplify Email oriented workflow with - Visendo SMTP Extender
How to simplify Email oriented workflow with - Visendo SMTP Extender
 
CFIMAP & CFPOP
CFIMAP & CFPOPCFIMAP & CFPOP
CFIMAP & CFPOP
 
XMPP Intro 1101 - 2008
XMPP Intro 1101 - 2008XMPP Intro 1101 - 2008
XMPP Intro 1101 - 2008
 
Smtp, pop3, imapv 4
Smtp, pop3, imapv 4Smtp, pop3, imapv 4
Smtp, pop3, imapv 4
 
SMTP(true)
SMTP(true)SMTP(true)
SMTP(true)
 
Spam Filter
Spam FilterSpam Filter
Spam Filter
 
Electronic mail
Electronic mailElectronic mail
Electronic mail
 
ScavengerEXA
ScavengerEXAScavengerEXA
ScavengerEXA
 
Lecture19
Lecture19Lecture19
Lecture19
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Send email attachment using smtp in mule esb
Send email attachment using smtp in mule esbSend email attachment using smtp in mule esb
Send email attachment using smtp in mule esb
 
Digital Forensics Research & Examination
Digital Forensics Research & ExaminationDigital Forensics Research & Examination
Digital Forensics Research & Examination
 
Unix Administration 5
Unix Administration 5Unix Administration 5
Unix Administration 5
 
Email - Electronic Mail
Email - Electronic MailEmail - Electronic Mail
Email - Electronic Mail
 
SMTP - SIMPLE MAIL TRANSFER PROTOCOL
SMTP - SIMPLE MAIL TRANSFER PROTOCOLSMTP - SIMPLE MAIL TRANSFER PROTOCOL
SMTP - SIMPLE MAIL TRANSFER PROTOCOL
 
Mail server using Linux(Ubuntu)
Mail server using Linux(Ubuntu)Mail server using Linux(Ubuntu)
Mail server using Linux(Ubuntu)
 

More from Vietnam Open Infrastructure User Group

Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with CephRoom 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with CephVietnam Open Infrastructure User Group
 
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...Vietnam Open Infrastructure User Group
 
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...Vietnam Open Infrastructure User Group
 
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giớiPhiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giớiVietnam Open Infrastructure User Group
 
Phiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mở
Phiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mởPhiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mở
Phiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mởVietnam Open Infrastructure User Group
 
Phiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfra
Phiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfraPhiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfra
Phiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfraVietnam Open Infrastructure User Group
 
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...Vietnam Open Infrastructure User Group
 
Zero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh Nguyen
Zero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh NguyenZero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh Nguyen
Zero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh NguyenVietnam Open Infrastructure User Group
 
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...Vietnam Open Infrastructure User Group
 
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Vietnam Open Infrastructure User Group
 

More from Vietnam Open Infrastructure User Group (14)

Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with CephRoom 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
 
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
 
Room 2 - 7 - Lã Mạnh Hà - Agile + DevOps = A great combination
Room 2 - 7 - Lã Mạnh Hà - Agile + DevOps = A great combinationRoom 2 - 7 - Lã Mạnh Hà - Agile + DevOps = A great combination
Room 2 - 7 - Lã Mạnh Hà - Agile + DevOps = A great combination
 
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
 
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giớiPhiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới
 
Phiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mở
Phiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mởPhiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mở
Phiên sáng - 06 - Thúc đẩy phát triển với Hệ sinh thái Cloud mở
 
Phiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfra
Phiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfraPhiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfra
Phiên sáng - 02 - Khai mạc và phát biểu của VIA và VietOpenInfra
 
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
 
Quick and Solid - Baremetal on OpenStack | Rico Lin
Quick and Solid - Baremetal on OpenStack | Rico LinQuick and Solid - Baremetal on OpenStack | Rico Lin
Quick and Solid - Baremetal on OpenStack | Rico Lin
 
Zero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh Nguyen
Zero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh NguyenZero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh Nguyen
Zero Touch 5G Slicing Infrastructure Management | Thủy Đặng, Trinh Nguyen
 
More Than An "API" | Jae Lee
More Than An "API" | Jae LeeMore Than An "API" | Jae Lee
More Than An "API" | Jae Lee
 
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
 
Ansible Automation - Enterprise Use Cases | Juncheng Anthony Lin
Ansible Automation - Enterprise Use Cases | Juncheng Anthony LinAnsible Automation - Enterprise Use Cases | Juncheng Anthony Lin
Ansible Automation - Enterprise Use Cases | Juncheng Anthony Lin
 
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
 

Recently uploaded

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

On-premise email service with Apache James

  • 1. 1/ On premise email inbound service with Apache James
  • 2. 2/ About me Backend software engineer @linagoraVN - Java / Scala developer - Solution architect - Apache James Chairman - email expert - Apache Cassandra fan-boy - Loves distributed computing topics.
  • 3. 3/ About Linagora Vietnam Office in Vietnam since 2015 Offers alternative for collaborative suites. Why ? => Digital sovereignty through OpenSource TMail
  • 4. 4/ About Apache James Apache project since 2007 → Implements multiple Email standards: SMTP, IMAP, JMAP, etc… → Scaling infrastucture available (Cassandra, S3, OpenSearch, RabbitMQ) → Flexibility: Extensions, and toolbox to assemble your own email server.
  • 5. 5/ What’s in a mail? Date: Tue, 03 Jan 2017 16:05:01 +0100 From: sender <sender@james.org> MIME-Version: 1.0 To: David DOLCIMASCOLO <david.ddo@linagora.com> Subject: Re: [Internet] Rendez-vous References: <9b6a4271-69fb-217a-5c14-c68c68375d96@linagora.com> In-Reply-To: <d5c6f1d6-96e7-8172-9fe6-41fa6c9bd6ec@linagora.com> X-Gie-Attachments: none Cc: Content-type: multipart/mixed; boundary="----------=_1483455916-7086-3" This is a multi-part message in MIME format... ------------=_1483455916-7086-3 Content-Type: multipart/alternative; boundary="------------060506070600060108040700" This is a multi-part message in MIME format. --------------060506070600060108040700 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit /blabla/ *bloblo* --------------060506070600060108040700 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit <i>blabla</i> <b>bloblo</b> --------------060506070600060108040700-- ------------=_1483455916-7086-3 Content-ID: <14672787885774e5c4d4cee471352039@linagora.com> Content-Type: text/plain; charset="iso-8859-1"; name="avertissement.txt" Content-Disposition: inline; filename="avertissement.txt" Content-Transfer-Encoding: binary inline attachment ------------=_1483455916-7086-3-- Mime stucture: - header / body - single body VS multipart - Each part have its header - Nested multiparts Parsing this can QUICKLY become a mess! CTRL + U in thunderbird
  • 6. 6/ Reminder about email protocols MTA MX DNS MX MDA proxy IMAP SMTPS Bob’s MUA Webmail Alice MUA Thunderbird Open standards (RFCs) No vendor lock in. SMTP (opportunistic STARTTLS upgrade) SMTPS (authenticated) SMTPS MX record lookup Vocabulary: - MTA: Mail Transfer Agent - MX: Mail eXchange - MDA: Mail Delivery Agent - MUA: Mail User Agent - SMTP: Simple Mail Transport Protocol - IMAP: Internet Message Access Protocol
  • 7. 7/ JMAP: The new kid in town MX MDA JMAP SMTPS Bob’s MUA Webmail Open standards (RFCs) No vendor lock in https://jmap.io/ SMTP (opportunistic STARTTLS upgrade) → Newly standardized → HTTP + JSON → Native Push and synchronization → Unifies IMAP and SMTP → Easy and efficient to use!
  • 8. 8/ Inbound VS outbound My App Bob (user) My app sends email: Outbound My app receives email: Inbound
  • 9. 9/ Inbound: example of feature The SMTP server added the event in my calendar!
  • 10. 10/ Inbound: Other examples List-Unsubscribe: <mailto:announce-unsubscribe@apache.org> SMTP server helpdesk@company.com
  • 11. 11/ James Architecture SMTP stack Mail Queue IMAP stack Mail Processing Mailbox Remote Delivery
  • 12. 12/ James Architecture (sorry) SMTP stack Mail Queue Mail Processing Use of eg James JPA-SMTP devoted to custom mail processing. My Stuff
  • 13. 13/ James Mail Processing Vocabulary: - Mailet: Action - Matcher:Condition - Processor: list of mailet and matcher The way mailetcontainer is arranged is fully defined in mailetcontainer.xml Many pre-existing mailet / matchers.
  • 14. 14/ Custom mailet / matchers - Loaded from external JAR - Can use on James components - Extensions can also inject their own components.
  • 15. 15/ Security - Sender address spoofing! - Reverse DNS lookups - SPF checks - DKIM checks All those are implemented in Apache James
  • 16. 16/ James: Other places where behavior can be overriden Feedback to an anti-spam Transfer user attachments to third party apps REST API, arbitrary operations. EG email expiracy... Checks before the mail queue
  • 17. 17/ James: A word of observability - Orchestrable: Helm charts available - Structured logs with applicative context (JSON) - Metrics (Prometheus)
  • 18. www.linagora.com Facebook : LINAGORA - Twitter : @linagora Tour Franklin 31ème étage 100 Terrasse Boieldieu 92042 PARIS LA DEFENSE FRANCE Tél. : +33 (0)1 46 96 63 63 - Fax : +33 (0)1 46 96 63 64 Thank you for your attention CONTACT Benoit TELLIER Ingénieur Logiciel btellier@linagora.com +33 (0)6 77 26 04 58 Mobile, Signal, Whatsapp