SlideShare a Scribd company logo
1 of 30
Download to read offline
1
.
Zimbra Scripting With Python
By : Imam Omar Mochtar (omar@jabetto.com )
Kopdar Python-id
Jogja, 2016
2
About Us
As Zimbra Provider for Email Solution
3
01
02
03
04
Leading Zimbra Provider in Indonesia
Enterprise-class Support
Professional Services
Established in 2009
4About Us: Authorized Zimbra Gold Partner
5About Us: Authorized Zimbra Training Center
6
Migrations Issue
Temporary Using Dual Platform,
Password Migration
Dual Platform Issue
Permanently Using Dual Platform
Sending Restriction
Email Sending Restriction (Size,
Subject, etc)
Forgotten password
Admin Burden for resetting
forgotten password
Authentication Issue
Multiple Authentication Services
Issue
Log Management Issue
Understanding Current Condition
Easily
Users Signature
No Standardization for Users’
signatures Issue
Spam And Virus
Database for anti-spam is not up
to date and olny have basic
feature
Local Expert
The obvious need for the skilled
resources
Reliable Support
The obvious need for the reliable
support
About Us: Providing Custom Solution
7About Us: EMAIL & COLLABORATION RELATED PRODUCTS AND SERVICES
8
Zimbra Intro
9ZIMBRA COMPONENTS
Bundled with Open Source Apps.
10Multi server Architecture
11ZIMBRA WEBCLIENT
12ZIMBRA Admin Console
13
Zimbra Scripting
Using zmprov
14Zimbra Scripting - zmprov
The zmprov tool performs all provisioning tasks in Zimbra LDAP, including creating accounts, aliases, domains, COS,
distribution lists, and calendar resources
Example:
● Creating user.
zmprov ca omar@jabetto.lab inibudi
● Set user attribute
zmprov ma omar@jabetto.lab sn Mochtar
● Get user attributes
zmprov ga omar@jabetto.lab
● Deleting user.
zmprov da omar@jabetto.lab
15Zimbra Scripting - zmprov
Binded with bash for scripting purpose
Example:
● Create 100 dummy user with default password selamat123
for user in {1..100}; do
zmprov ca user$x@jabetto.lab selamat123
done
Const: slow in every executing zmprov, Java app behaviour (?).
Solution: Dump zmprov arguments in one file then set as input stream with arguments -f
Example:
● Create file contains zmprov arguments
cat > /tmp/runme
ca user1@jabetto.lab selamat123
ca user2@jabetto.lab selamat123
ca user3@jabetto.lab selamat123
...
● Run in single zmprov command
zmprov -f /tmp/runme
Const: Cannot add logic from input file stream.
Solution: Using direct zimbra API call in one java process instance.
16
Zimbra Scripting
Using zmpython
17Zimbra Scripting - zmpython
● zmpython = Jython + Zimbra Java API.
● Included in every zimbra distribution release ( /opt/zimbra/bin/zmpython ).
● Logic Flexibility in single java process.
● Rather slow in execution, but blazingly fast while executing python with zimbra Library.
● We can do all task beyond zimbra API.
● But …..
There is no such documentation refer to zmpython, so we are call it ZAlien
18Zimbra Scripting - zmpython
So, The best zmpython documentation is the source code of Zimbra it self. Some of forking available in github. Eg:
19Zimbra Scripting - zmpython
Example: creating 100 user in batch with selamat123 as default password
● Create python script then save/upload it to zimbra server.
● Execute it with zmpython command.
/opt/zimbra/bin/zmpython /tmp/create100user.py
20Zimbra Scripting - zmpython
Speed Comparison DEMO:
CASE: Get User All Mailbox Size
Bash (zmprov & zmmailbox) VS zmpython
21
Zimbra Scripting
Using zimbra API
22Zimbra Scripting - Zimbra API
● For integrating 3th party apps to zimbra with ease.
● You can calling what Zimbra Admin Console do and beyond.
● Good documentation are there :) .
● Use zmsoap command for direct soap call or as testing purpose.
● Bunch of Zimbra API library for (some) famous proglang are there (eg: github).
● In Jabetto, we are using it a lot (almost) in every our product or for some task
automation.
23Zimbra Scripting - Zimbra API
Task automation example: Mail sending & receiving test
24Zimbra Scripting - Zimbra API
In our product example: Jlimiter, fetch Zimbra Information Data
25Zimbra Scripting - Zimbra API
DEMO
What API Documentation Says
26Zimbra Scripting - Zimbra API
zmsoap ( within zimbra server)
27Zimbra Scripting - Zimbra API
Direct SOAP API Call (from another host)
1. Get Token 2. Use token in every soap call
28Zimbra Scripting - Zimbra API
Direct SOAP API Call (from another host)
3. Example for create an account
29
NEXT: Q&A
Thanks!

More Related Content

What's hot

Honeypot Presentation - Using Honeyd
Honeypot Presentation - Using HoneydHoneypot Presentation - Using Honeyd
Honeypot Presentation - Using Honeydicanhasfay
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)NGINX, Inc.
 
Cybersecurity for Everyone Course. Final Project OilRig.pdf
Cybersecurity for Everyone Course. Final Project OilRig.pdfCybersecurity for Everyone Course. Final Project OilRig.pdf
Cybersecurity for Everyone Course. Final Project OilRig.pdfHamzaAfzal61
 
【大話資安】資安開源軟體:神兵利器還是雙面利刃?
【大話資安】資安開源軟體:神兵利器還是雙面利刃?【大話資安】資安開源軟體:神兵利器還是雙面利刃?
【大話資安】資安開源軟體:神兵利器還是雙面利刃?Jason Cheng
 
Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019
Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019
Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019Jason Cheng
 
採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022
採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022
採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022Jason Cheng
 
Firewall and its purpose
Firewall and its purposeFirewall and its purpose
Firewall and its purposeRohit Phulsunge
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定Kan Itani
 
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @MonospaceJason Cheng
 
台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤jack51706
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatiqueSaber Ferjani
 
Firewall protection
Firewall protectionFirewall protection
Firewall protectionVC Infotech
 
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會Jason Cheng
 
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAPVirtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAPMichael Coates
 

What's hot (20)

Honeypot Presentation - Using Honeyd
Honeypot Presentation - Using HoneydHoneypot Presentation - Using Honeyd
Honeypot Presentation - Using Honeyd
 
pfSense 2.0 Eğitim Sunumu
pfSense 2.0 Eğitim SunumupfSense 2.0 Eğitim Sunumu
pfSense 2.0 Eğitim Sunumu
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)
 
Cybersecurity for Everyone Course. Final Project OilRig.pdf
Cybersecurity for Everyone Course. Final Project OilRig.pdfCybersecurity for Everyone Course. Final Project OilRig.pdf
Cybersecurity for Everyone Course. Final Project OilRig.pdf
 
network storage
network storagenetwork storage
network storage
 
【大話資安】資安開源軟體:神兵利器還是雙面利刃?
【大話資安】資安開源軟體:神兵利器還是雙面利刃?【大話資安】資安開源軟體:神兵利器還是雙面利刃?
【大話資安】資安開源軟體:神兵利器還是雙面利刃?
 
Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019
Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019
Proxmox VE 開源伺服器虛擬化應用經驗分享 [2019/11/12] @OpenInfra Days Taiwan 2019
 
採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022
採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022
採用開源軟體打造企業資安監測系統 [2022/10/06] @InfoSec Taiwan 2022
 
Firewall and its purpose
Firewall and its purposeFirewall and its purpose
Firewall and its purpose
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
 
Malware.pptx
Malware.pptxMalware.pptx
Malware.pptx
 
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
突破困境:資安開源工具之應用分享_社群議程加強版 [2019/06/08] @Monospace
 
Firewall basics
Firewall basicsFirewall basics
Firewall basics
 
台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤台科大網路鑑識課程 封包分析及中繼站追蹤
台科大網路鑑識課程 封包分析及中繼站追蹤
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatique
 
Firewall protection
Firewall protectionFirewall protection
Firewall protection
 
Honeypots (Ravindra Singh Rathore)
Honeypots (Ravindra Singh Rathore)Honeypots (Ravindra Singh Rathore)
Honeypots (Ravindra Singh Rathore)
 
Honeypot
HoneypotHoneypot
Honeypot
 
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
突破困境:資安開源工具之應用分享 [2019/03/21] @臺灣資安大會
 
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAPVirtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
 

Similar to Zimbra scripting with python

Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Mike Willbanks
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleMike Willbanks
 
Jstorm introduction-0.9.6
Jstorm introduction-0.9.6Jstorm introduction-0.9.6
Jstorm introduction-0.9.6longda feng
 
Zimbra admin ui demo presentation
Zimbra admin ui demo presentationZimbra admin ui demo presentation
Zimbra admin ui demo presentationsolarisyourep
 
Black hat dc-2010-egypt-uav-slides
Black hat dc-2010-egypt-uav-slidesBlack hat dc-2010-egypt-uav-slides
Black hat dc-2010-egypt-uav-slidesBakry3
 
High Availability Architecture for Legacy Stuff - a 10.000 feet overview
High Availability Architecture for Legacy Stuff - a 10.000 feet overviewHigh Availability Architecture for Legacy Stuff - a 10.000 feet overview
High Availability Architecture for Legacy Stuff - a 10.000 feet overviewMarco Amado
 
Distributed Queue System using Gearman
Distributed Queue System using GearmanDistributed Queue System using Gearman
Distributed Queue System using GearmanEric Cho
 
Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2Andrew Yatsenko
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in phpBo-Yi Wu
 
AppSec California 2016 - Making Security Agile
AppSec California 2016 - Making Security AgileAppSec California 2016 - Making Security Agile
AppSec California 2016 - Making Security AgileOleg Gryb
 
Python Hashlib & A True Story of One Bug
Python Hashlib & A True Story of One BugPython Hashlib & A True Story of One Bug
Python Hashlib & A True Story of One Bugdelimitry
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuningJerry Kurian
 
Porting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability SystemsPorting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability SystemsMarcelo Pinheiro
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applicationsCesar Cardenas Desales
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop AutomationRui Lapa
 
First adventure within a shell - Andrea Telatin at Quadram Institute
First adventure within a shell - Andrea Telatin at Quadram InstituteFirst adventure within a shell - Andrea Telatin at Quadram Institute
First adventure within a shell - Andrea Telatin at Quadram InstituteAndrea Telatin
 

Similar to Zimbra scripting with python (20)

Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for Scale
 
12 tricks to avoid hackers breaks your CI / CD
12 tricks to avoid hackers breaks your  CI / CD12 tricks to avoid hackers breaks your  CI / CD
12 tricks to avoid hackers breaks your CI / CD
 
Us 17-krug-hacking-severless-runtimes
Us 17-krug-hacking-severless-runtimesUs 17-krug-hacking-severless-runtimes
Us 17-krug-hacking-severless-runtimes
 
Jstorm introduction-0.9.6
Jstorm introduction-0.9.6Jstorm introduction-0.9.6
Jstorm introduction-0.9.6
 
Symfony Performance
Symfony PerformanceSymfony Performance
Symfony Performance
 
Concurrency in ruby
Concurrency in rubyConcurrency in ruby
Concurrency in ruby
 
Zimbra admin ui demo presentation
Zimbra admin ui demo presentationZimbra admin ui demo presentation
Zimbra admin ui demo presentation
 
Black hat dc-2010-egypt-uav-slides
Black hat dc-2010-egypt-uav-slidesBlack hat dc-2010-egypt-uav-slides
Black hat dc-2010-egypt-uav-slides
 
High Availability Architecture for Legacy Stuff - a 10.000 feet overview
High Availability Architecture for Legacy Stuff - a 10.000 feet overviewHigh Availability Architecture for Legacy Stuff - a 10.000 feet overview
High Availability Architecture for Legacy Stuff - a 10.000 feet overview
 
Distributed Queue System using Gearman
Distributed Queue System using GearmanDistributed Queue System using Gearman
Distributed Queue System using Gearman
 
Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in php
 
AppSec California 2016 - Making Security Agile
AppSec California 2016 - Making Security AgileAppSec California 2016 - Making Security Agile
AppSec California 2016 - Making Security Agile
 
Python Hashlib & A True Story of One Bug
Python Hashlib & A True Story of One BugPython Hashlib & A True Story of One Bug
Python Hashlib & A True Story of One Bug
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
Porting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability SystemsPorting Rails Apps to High Availability Systems
Porting Rails Apps to High Availability Systems
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applications
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop Automation
 
First adventure within a shell - Andrea Telatin at Quadram Institute
First adventure within a shell - Andrea Telatin at Quadram InstituteFirst adventure within a shell - Andrea Telatin at Quadram Institute
First adventure within a shell - Andrea Telatin at Quadram Institute
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Zimbra scripting with python

  • 1. 1 . Zimbra Scripting With Python By : Imam Omar Mochtar (omar@jabetto.com ) Kopdar Python-id Jogja, 2016
  • 2. 2 About Us As Zimbra Provider for Email Solution
  • 3. 3 01 02 03 04 Leading Zimbra Provider in Indonesia Enterprise-class Support Professional Services Established in 2009
  • 4. 4About Us: Authorized Zimbra Gold Partner
  • 5. 5About Us: Authorized Zimbra Training Center
  • 6. 6 Migrations Issue Temporary Using Dual Platform, Password Migration Dual Platform Issue Permanently Using Dual Platform Sending Restriction Email Sending Restriction (Size, Subject, etc) Forgotten password Admin Burden for resetting forgotten password Authentication Issue Multiple Authentication Services Issue Log Management Issue Understanding Current Condition Easily Users Signature No Standardization for Users’ signatures Issue Spam And Virus Database for anti-spam is not up to date and olny have basic feature Local Expert The obvious need for the skilled resources Reliable Support The obvious need for the reliable support About Us: Providing Custom Solution
  • 7. 7About Us: EMAIL & COLLABORATION RELATED PRODUCTS AND SERVICES
  • 14. 14Zimbra Scripting - zmprov The zmprov tool performs all provisioning tasks in Zimbra LDAP, including creating accounts, aliases, domains, COS, distribution lists, and calendar resources Example: ● Creating user. zmprov ca omar@jabetto.lab inibudi ● Set user attribute zmprov ma omar@jabetto.lab sn Mochtar ● Get user attributes zmprov ga omar@jabetto.lab ● Deleting user. zmprov da omar@jabetto.lab
  • 15. 15Zimbra Scripting - zmprov Binded with bash for scripting purpose Example: ● Create 100 dummy user with default password selamat123 for user in {1..100}; do zmprov ca user$x@jabetto.lab selamat123 done Const: slow in every executing zmprov, Java app behaviour (?). Solution: Dump zmprov arguments in one file then set as input stream with arguments -f Example: ● Create file contains zmprov arguments cat > /tmp/runme ca user1@jabetto.lab selamat123 ca user2@jabetto.lab selamat123 ca user3@jabetto.lab selamat123 ... ● Run in single zmprov command zmprov -f /tmp/runme Const: Cannot add logic from input file stream. Solution: Using direct zimbra API call in one java process instance.
  • 17. 17Zimbra Scripting - zmpython ● zmpython = Jython + Zimbra Java API. ● Included in every zimbra distribution release ( /opt/zimbra/bin/zmpython ). ● Logic Flexibility in single java process. ● Rather slow in execution, but blazingly fast while executing python with zimbra Library. ● We can do all task beyond zimbra API. ● But ….. There is no such documentation refer to zmpython, so we are call it ZAlien
  • 18. 18Zimbra Scripting - zmpython So, The best zmpython documentation is the source code of Zimbra it self. Some of forking available in github. Eg:
  • 19. 19Zimbra Scripting - zmpython Example: creating 100 user in batch with selamat123 as default password ● Create python script then save/upload it to zimbra server. ● Execute it with zmpython command. /opt/zimbra/bin/zmpython /tmp/create100user.py
  • 20. 20Zimbra Scripting - zmpython Speed Comparison DEMO: CASE: Get User All Mailbox Size Bash (zmprov & zmmailbox) VS zmpython
  • 22. 22Zimbra Scripting - Zimbra API ● For integrating 3th party apps to zimbra with ease. ● You can calling what Zimbra Admin Console do and beyond. ● Good documentation are there :) . ● Use zmsoap command for direct soap call or as testing purpose. ● Bunch of Zimbra API library for (some) famous proglang are there (eg: github). ● In Jabetto, we are using it a lot (almost) in every our product or for some task automation.
  • 23. 23Zimbra Scripting - Zimbra API Task automation example: Mail sending & receiving test
  • 24. 24Zimbra Scripting - Zimbra API In our product example: Jlimiter, fetch Zimbra Information Data
  • 25. 25Zimbra Scripting - Zimbra API DEMO What API Documentation Says
  • 26. 26Zimbra Scripting - Zimbra API zmsoap ( within zimbra server)
  • 27. 27Zimbra Scripting - Zimbra API Direct SOAP API Call (from another host) 1. Get Token 2. Use token in every soap call
  • 28. 28Zimbra Scripting - Zimbra API Direct SOAP API Call (from another host) 3. Example for create an account